2021-01-26 18:12阅读: 271评论: 0推荐: 1

JavaWeb三大框架基础架构——CRUD的基础功能搭建

@

介绍

项目前端采用了bootstrap,后端是ssm三大框架

注意

这是项目的基础架构
基础架构
要注意的几个配置:applicationContext.xml,mybatis.xml,web.xml,pom.xml
其中的pojo代码使用了lombok插件,前端分页用了pagehelp
必要的applicationContext.xml(这是spring的核心,我把spring、springmvc和部分mybatis的代码都整合在里面了)

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 配置整合mybatis -->
    <!-- 1.关联数据库文件 -->
    <context:property-placeholder location="classpath:database.properties"/>

    <!-- 2.数据库连接池 -->
    <!--数据库连接池
    dbcp 半自动化操作 不能自动连接
    c3p0 自动化操作(自动的加载配置文件 并且设置到对象里面)
    -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <!-- 配置连接池属性 -->
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>

        <!-- c3p0连接池的私有属性 -->
        <property name="maxPoolSize" value="30"/>
        <property name="minPoolSize" value="10"/>
        <!-- 关闭连接后不自动commit -->
        <property name="autoCommitOnClose" value="false"/>
        <!-- 获取连接超时时间 -->
        <property name="checkoutTimeout" value="10000"/>
        <!-- 当获取连接失败重试次数 -->
        <property name="acquireRetryAttempts" value="2"/>
    </bean>

    <!-- 3.配置SqlSessionFactory对象 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置MyBaties全局配置文件:mybatis-config.xml -->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
    </bean>

    <!-- 4.配置扫描Dao接口包,动态实现Dao接口注入到spring容器中 -->
    <!--解释 : https://www.cnblogs.com/jpfss/p/7799806.html-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 注入sqlSessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!-- 给出需要扫描Dao接口包 -->
        <property name="basePackage" value="com.yishuai.dao"/>
    </bean>

    <!--    整合service-->
    <!-- 扫描service相关的bean -->
    <context:component-scan base-package="com.yishuai.service"/>
    <!--BookServiceImpl注入到IOC容器中-->
    <bean id="userServiceImpl" class="com.yishuai.service.UserServiceImpl">
        <property name="userMapper" ref="userMapper"/>
    </bean>
    <bean id="empServiceImpl" class="com.yishuai.service.EmpServiceImpl">
        <property name="empMapper" ref="empMapper"/>
    </bean>
    <bean id="deptServiceImpl" class="com.yishuai.service.DeptServiceImpl">
        <property name="deptMapper" ref="deptMapper"/>
    </bean>

    <!-- 配置事务管理器 -->
    <bean id="transactionManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- 配置SpringMVC -->
    <!-- 1.开启SpringMVC注解驱动 -->
    <mvc:annotation-driven/>
    <!-- 2.静态资源默认servlet配置-->
    <mvc:default-servlet-handler/>
    <!-- 3.配置jsp 显示ViewResolver视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <!-- 4.扫描web相关的bean -->
    <context:component-scan base-package="com.yishuai.controller"/>
</beans>

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--    驼峰命名-->
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <!--    设置别名-->
    <typeAliases>
        <package name="com.yishuai.pojo"/>
    </typeAliases>

    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!--reasonable:分页合理化参数,默认值为false,直接根据参数进行查询。
              当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。-->
            <property name="reasonable" value="true"/>
        </plugin>
    </plugins>

</configuration>

database.properties
ssmcrud是数据库的名字
password后面的是密码,自行修改一下

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmcrud?useSSL=true&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456a

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!--一定要注意:我们这里加载的是总的配置文件,之前被这里坑了!-->
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!--encodingFilter-->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--Session过期时间-->
    <session-config>
        <session-timeout>15</session-timeout>
    </session-config>
</web-app>

大部分的配置都放到了applicationContext中,如果需要,mybatis-config里面可以什么都不放,只留头文件,其他的都在applicationContext里面配置

  • pom里面一定要配置资源过滤,不然xml等文件打包不出来,一定报错!*
  • dao层存放接口,service放置页面,impl为实现类,主要还是controller层进行调用,filter和utils按需开发

项目导入时,需要自行改成自己的jdk以及修复models
上图:
第一步:
在这里插入图片描述
第二步:
在这里插入图片描述
第三步:
在这里插入图片描述
第四步:
在这里插入图片描述
第五步:
在这里插入图片描述
在这里插入图片描述

结束语

保存,然后直接点击绿色的运行即可。

包含这么清楚的注释的架构不易,且用且珍惜哦
前端页面,后端逻辑代码,以及用到的资源都放到压缩包里面了
复习和学习的首选哦
数据库一起打包啦
链接上不限速的蓝奏云啦~

点我下载
https://www.lanzous.com/iLTSSkr7n0h

本文作者:小秋呀

本文链接:https://www.cnblogs.com/yishuai/p/14331816.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   小秋呀  阅读(271)  评论(0)    收藏  举报
编辑推荐:
· 记录一次线上问题排查:JDK序列化问题
· 微服务之间有哪些调用方式?
· 记一次SQL隐式转换导致精度丢失问题的排查
· dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
· 如何统计不同电话号码的个数?—位图法
阅读排行:
· EF Core 10 现已支持 LeftJoin 和 RightJoin 运算符查询了!
· Python 3.14 t-string 要来了,它与 f-string 有何不同?
· C#网络编程(一)----应用层/传输层
· Promise 这个新 API 真香!
· 记录一次线上问题排查:JDK序列化问题
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 我好想你 苏打绿
我好想你 - 苏打绿
00:00 / 00:00
An audio error has occurred.

作曲 : 吴青峰

作词 : 吴青峰

编曲:苏打绿 / 林暐哲

制作人:林暐哲

制作协力:谢馨仪

演唱:吴青峰

演奏 / 合音:苏打绿

合音编写: 吴青峰

吉他:钟承洋

录音工程师:柯宗佑 / 李汪哲@Monster Studio / 杜今科@陈俊廷北京录音室

混音工程师:柯宗佑@Monster Studio

母带后期处理:柯宗佑@Monster Studio

OP:林暐哲音乐社有限公司

SP:Universal Music Publishing Ltd., Taiwan

ISRC TW-F67-13-00206

开了灯 眼前的模样

偌大的房 寂寞的床

关了灯 全都一个样

心里的伤 无法分享

生命随年月流去

随白发老去

随着你离去 快乐渺无音讯

随往事淡去

随梦境睡去

随麻痹的心逐渐远去

我好想你 好想你

却不露痕迹

我还踮着脚思念

我还任记忆盘旋

我还闭着眼流泪

我还装作无所谓

我好想你 好想你

却欺骗自己

开了灯 眼前的模样

偌大的房 寂寞的床

关了灯 全都一个样

心里的伤 无法分享

生命随年月流去

随白发老去

随着你离去 快乐渺无音讯

随往事淡去

随梦境睡去

随麻痹的心逐渐远去

我好想你 好想你

却不露痕迹

我还踮着脚思念

我还任记忆盘旋

我还闭着眼流泪

我还装作无所谓

我好想你 好想你

却欺骗自己

我好想你 好想你

就当作秘密

我好想你 好想你

就深藏在心