SSM整合

SSM整合

整合思路

  • 首先对于每一个框架都搭建好环境且可以正常运行
  • 然后再对三个框架进行整合
  • Spring整合SpringMVC和MyBatis两个框架
    NZVf8x.md.png

整合方式选择

  • 这里的整合方式选择XML+注解
  1. SpringMVC:

    • web.xml:
      • 前端控制器
      • 拦截器
    • 配置文件配置:
      • 要扫描的包
      • 视图解析器
      • 忽略过滤器的文件
      • 开启注解
    • 注解配置:
      • 对应的控制器注解
  2. Spring:

    • 配置文件配置:
      • 要扫描的包
    • 注解配置:
      • 对应的业务层注解及依赖注入
  3. MyBatis:

    • 配置文件配置:(在整合后可以不需要这个配置文件)
      • 主配置文件
      • 配置环境(连接数据库相关)
      • 配置文件(动态代理的dao在哪)
    • 注解配置:
      • 对应的持久层注解及sql语句

整合:

  1. Spring整合SpringMVC
    NZVOPI.md.png

    • 在web.xml配置监听器,一旦服务器启动就加载Spring的配置文件,将相关的bean对象注入ioc容器。

      <!-- 配置前监听器加载Spring配置文件,默认只加载WEB-INF下的applicationContext.xml文件 -->
      <listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <!-- 设置配置文件的路径 -->
      <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:applicationContext.xml</param-value>
      </context-param>
  2. Spring整合MyBatis

    • 在Spring的配置文件中配置

      1. 配置连接池

        <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value=" "/>
            <property name="url" value=" "/>
            <property name="username" value=" "/>
            <property name="password" value=" "/>
        </bean>
      2. 配置SqlSessionFactory对象

        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="druidDataSource"/>
        </bean>
      3. 配置dao接口所在的包

        <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="ssm.dao"/>
        </bean>
    • 对于增删改的需求还需要再Spring的配置文件中声明事务

      1. 配置事务管理器

        <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="druidDataSource"/>
        </bean>
      2. 配置事务通知

        <tx:advice id="txAdvice" transaction-manager="dataSourceTransactionManager">
            <tx:attributes>
                <tx:method name="find*" read-only="true" propagation="SUPPORTS"/>
                <tx:method name="*" read-only="false" propagation="REQUIRED"/>
            </tx:attributes>
        </tx:advice>
      3. 配置AOP增强

        <aop:config>
            <aop:advisor advice-ref="txAdvice" pointcut="execution(* ssm.service.impl.*.*(..))"/>
        </aop:config>
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!

请我喝杯咖啡吧~

支付宝
微信