• 基于maven+ssm的增删改查之spring+springmvc+mybatis环境搭建


    接上一节。

    1、首先建立如下目录

    说明:

    com.gong.curd.bean:用于存放普通javabean。

    com.gong.curd.dao:用于存放mapper接口

    com.gong.curd.controller:用于存放控制器

    com.gong.curd.service:用于存放业务层接口

    com.gong.curd.serviceImpl:用于存放service接口的实现类

    com.gong.curd.utils:用于存放通用的工具类

    com.gong.curd.test:用于测试

    mapper:用于存放mapper.xml文件

    applicationContext.xml:用于存放spring配置文件

    db.properties:用于存储连接数据库的相关信息

    log4j.properties:用于配置日志

    mybatis-config.xml:用于存放mybatis配置文件

    springmvc.xml:用于存放springmvc配置文件

    static:用于存放静态文件

    views:用于存放视图文件

    index.jsp:启动tomcat服务器之后的入口视图

    web.xml:Dynamic Web Project核心文件,用于配置servlet、过滤器、监听器等。主要是加载spring、springmvc配置文件,配置乱码过滤器,配置rest风格的url地址。

    generatorConfig.xml:mybatis逆向工程配置文件

    pom.xml:maven项目核心文件,用于导入相关依赖包

    2、对相关文件进行一一写入

    log4j.properties

    # Global logging configurationuff0cu5efau8baeu5f00u53d1u73afu5883u4e2du8981u7528debug
    log4j.rootLogger=DEBUG, stdout
    # Console output...
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
        id="WebApp_ID" 
        version="2.5">
        <!-- 加载spring容器 -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        
        <!-- The front controller of this Spring Web application, responsible for handling all application requests -->
        <!-- 加载springmvc配置文件 -->
        <servlet>
            <servlet-name>springDispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <!-- Map all requests to the DispatcherServlet for handling -->
        <servlet-mapping>
            <servlet-name>springDispatcherServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
        
        <!-- post乱码过虑器 ,必须放在最前面-->
        <filter>
            <filter-name>CharacterEncodingFilter</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>
            <init-param>
                <param-name>forceRequestEncoding</param-name>
                <param-value>true</param-value>
            </init-param>
            <init-param>
                <param-name>forceResponseEncoding</param-name>
                <param-value>true</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>CharacterEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        
        <!-- rest风格,将Post转换为delete和put -->
        <filter>
            <filter-name>HiddenHttpMethodFilter</filter-name>
            <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>HiddenHttpMethodFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    </web-app>

    springmvc.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:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
        <!-- springmvc的配置文件,包含网站的跳转逻辑的控制与配置 -->
        <context:component-scan base-package="com.gong" use-default-filters="false">
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>
        
        <!-- 视图解析器解析jsp解析,默认使用jstl标签,classpath下的得有jstl的包 -->
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!-- 配置jsp路径的前缀 -->
            <property name="prefix" value="/WEB-INF/views/"/>
            <!-- 配置jsp路径的后缀 -->
            <property name="suffix" value=".jsp"/>
        </bean>
        
        <!-- 两个标准配置,将spring不能处理的请求交给tomcat-->
        <mvc:default-servlet-handler/>
        <!-- 注解器映射器、注解器适配器,一些更高级应用JSR303校验,AJAX请求 -->
        <mvc:annotation-driven></mvc:annotation-driven>
    
    </beans>

    db.properties

    jdbc.jdbcUrl=jdbc:mysql://localhost:3306/ssm_curd
    jdbc.driverClass=com.mysql.jdbc.Driver
    jdbc.user=root
    jdbc.password=123456

    applicationContext.xml(六条)

    (1)让spring控制除了@Controller的@Service、@Autowired等

    (2)配置连接数据库相关

    (3)配置sqlSessionFactory(这里面有加载mybatis配置文件,配置数据库连接池、配置mapper.xml文件的位置)

    (4)配置mapper接口文件存储的位置

    (5)配置可以执行批量操作的sqlSession(即可以批量插入等操作)

    (6)配置事务相关

    <?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:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
    
        <context:component-scan base-package="com.gong">
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>
    
        <!-- spring的配置文件,主要配置和业务逻辑有关的 -->
        <!-- 数据源、事务控制 -->
        <!-- 加载db.properties文件中的内容,db.properties文件中key命名要有一定的特殊规则 -->
        <context:property-placeholder location="classpath:db.properties" />
        
        <!-- 配置数据源 ,c3p0 -->
        <bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
            <property name="driverClass" value="${jdbc.driverClass}"></property>
            <property name="user" value="${jdbc.user}"></property>
            <property name="password" value="${jdbc.password}"></property>
        </bean>
        
        <!-- sqlSessionFactory -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <!-- 加载mybatis的全局配置文件 -->
            <property name="configLocation" value="classpath:mybatis-config.xml" />
            <!-- 数据库连接池 -->
            <property name="dataSource" ref="pooledDataSource" />
            <!-- 指定mapper文件的位置 -->
            <property name="mapperLocations" value="classpath:mapper/*.xml"></property>
        </bean>
        
        <!-- 将所有mybatis接口的实现加入到ioc容器中 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <!-- 扫描所有dao接口的实现,加入到ioc容器中 -->
            <property name="basePackage" value="com.gong.curd.dao"></property>
            <!-- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> -->
        </bean>
        
        <!-- 配置一个可以执行批量的sqlSession -->
        <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
            <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
            <constructor-arg name="executorType" value="BATCH"></constructor-arg>
        </bean>
        
        <!-- 事务管理器 -->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="pooledDataSource"/>
        </bean>
        
        <!-- 基于注解的事务和xml配置的事务(主要使用配置式) -->
        <aop:config>
            <!-- 切入表达式 -->
            <aop:pointcut expression="execution(* com.gong.curd.service..*(..))" id="txPoint"/>
            <!-- 配置事务增强 -->
            <aop:advisor advice-ref="txAdivce" pointcut-ref="txPoint"/>
        </aop:config>
        
        <!-- 配置事务增强 -->
        <tx:advice id="txAdivce">
            <tx:attributes>
                <!-- 所有方法都是事务方法 -->
                <tx:method name="*"/>
                <!-- 以get开头的所有方法 -->
                <tx:method name="get" read-only="true"/>    
            </tx:attributes>
        </tx:advice>
        
        <!-- spring文件核心点:数据源、mybatis整合、事务控制 -->
    </beans>

    mybatis-config.xml(暂时是三条)

    (1)驼峰命名规则

    (2)为javabean取别名

    (3)配置分页插件

    <?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.gong.curd.bean"/>
         </typeAliases>
         
         <plugins>
             <plugin interceptor="com.github.pagehelper.PageInterceptor">
                 <property name="reasonable" value="true"/>
             </plugin>
         </plugins>
     </configuration>

    3、引入外部所需的静态资源

    向static中加入bootstrap和jquery相关文件。

    至此基于maven的ssm整合已完成。下一节进行mybatis逆向工程生成相关文件。 

  • 相关阅读:
    [atARC123F]Insert Addition
    3.1 概述
    2.5 信道的极限容量
    2.4 编码与调制
    2.3 传输方式
    tp6_004路由配置
    tp6_003多应用配置
    tp6_002规范和配置
    tp6_001安装和运行
    问题解决:tp6多应用无法获取controller 和 action怎么办
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12236122.html
Copyright © 2020-2023  润新知