SSM整合

SSM整合

1、 依赖

  • 首先看一下我们需要的依赖
    <!--    这个非常重要,要修改他的打包方式-->
    <packaging>war</packaging>
    
    <properties>
        <javax.servlet-api.version>4.0.1</javax.servlet-api.version>
        <spring.version>5.2.9.RELEASE</spring.version>
        <aspectjweaver.version>1.9.5</aspectjweaver.version>
        <mysql.version>5.1.49</mysql.version>
        <mybatis.version>3.5.4</mybatis.version>
        <mybatis-spring.version>2.0.4</mybatis-spring.version>
        <druid.version>1.1.10</druid.version>
        <lombok.version>1.18.12</lombok.version>
        <junit.version>4.13</junit.version>
        <log4j.version>1.2.17</log4j.version>
        <fastjson.version>1.2.68</fastjson.version>
    </properties>
    
    <dependencies>
        <!--        WEB依赖-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${javax.servlet-api.version}</version>
        </dependency>
        <!--        spring的依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--        AOP织入的依赖-->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>${aspectjweaver.version}</version>
        </dependency>
        <!--        数据库的依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <!--        mybatis的依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <!--        spring整合mybatis的依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis-spring.version}</version>
        </dependency>
        <!--        事务的依赖(注意版本不能大过spring的版本)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.27.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--        数据源的依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <!--        SpringMVC的依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>
    </dependencies>
    

    2、Mybatis

  • Mybatis

    整合mybatis我们需要两个文件一个是mybatis-config的核心配置文件,另一个就是spring整合mybatis的文件

    • mybatis-config.xml

      我们一般在这个文件中只配置别名和mybatis的动态行为

      <configuration>
      	<!--    设置-->
      	<settings>
      		<setting name="logImpl" value="LOG4J"/>
      	</settings>
      
      	<!--    别名-->
      	<typeAliases>
      		<package name="com.hdax.pojo"/>
       	</typeAliases>
      </configuration>
      
    • spring-dao.xml

      在spring中配置数据源和mapper

      	<!--    扫描包-->
      	 <context:component-scan base-package="com.hdax.dao"/>
      
          <!--    引用外部配置文件-->
          <context:property-placeholder location="classpath:database.properties"/>
      
          <!--    配置数据源-->
          <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
              <property name="driverClassName" value="${jdbc.driver}"/>
              <property name="url" value="${jdbc.url}"/>
              <property name="username" value="${jdbc.username}"/>
              <property name="password" value="${jdbc.password}"/>
          </bean>
      
          <!--    sqlSessionFactory-->
          <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
              <!--        注入数据源-->
              <property name="dataSource" ref="dataSource"/>
              <!--        注入mybatis-config配置文件-->
              <property name="configLocation" value="classpath:config/mybatis-config.xml"/>
              <!--        注入mapper-->
              <property name="mapperLocations" value="classpath:com/hdax/dao/*.xml"/>
          </bean>
      
          <!--    sqlSession-->
          <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
              <constructor-arg ref="sqlSessionFactory"/>
          </bean>
      
          <!--    动态代理mapper-->
          <mybatis:scan base-package="com.hdax.dao"/>
      

3、Spring

  • spring-service.xml

    我们一般在这个文件中控制service层中的事情(AOP、事务都是在这里控制)

        <!--    扫描service包-->
    <context:component-scan base-package="com.hdax.service"/>
    
    <!--    配置声明式事务-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">`
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
    <!--   事务注解 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>
    

4、SpringMVC

  • web.xml

    在该文件主要注册调度中心与spring配置文件做连接

        <!--    注册Dispatcher-->
    <servlet>
        <servlet-name>spring-mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <!--            连接spring配置文件-->
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:config/applicationContext.xml</param-value>
        </init-param>
        <!--        启动级别-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>spring-mvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
    <!--    过滤器用于解决乱码问题-->
    <filter>
        <filter-name>encoding</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>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!--    session失效时间-->
    <session-config>
        <session-timeout>15</session-timeout>
    </session-config>
    
  • spring-controller.xml

    在该文件中主要控制controller配置视图解析器

      <!--    扫描controller-->
    <context:component-scan base-package="com.hdax.controller"/>
    <!--   静态资源过滤-->
    <mvc:default-servlet-handler/>
    <!--    注解驱动-->
    <mvc:annotation-driven/>
    
    <!-- 处理请求返回json字符串的中文乱码问题 -->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="false">
            <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>application/json;characterEncoding=UTF-8</value>
                    </list>
                </property>
                <property name="fastJsonConfig">
                    <bean class="com.alibaba.fastjson.support.config.FastJsonConfig">
                        <property name="serializerFeatures">
                            <array>
                                <value>WriteDateUseDateFormat</value>
                                <value>PrettyFormat</value>
                                <value>QuoteFieldNames</value>
                                <value>DisableCircularReferenceDetect</value>
                            </array>
                        </property>
                    </bean>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
    
    <!--    视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    

5、整合

  • applicationContext.xml

    在该文件中引用其他层文件整合到一块

     <!--   扫描实体类 -->
    <context:component-scan base-package="com.hdax.pojo"/>
    
    <!--    dao-->
    <import resource="classpath:config/spring-dao.xml"/>
    <!--    service-->
    <import resource="classpath:config/spring-service.xml"/>
    <!--    controller-->
    <import resource="classpath:config/spring-controller.xml"/>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值