• SSM整合


    1.MyBatis和Spring的集成工作是由MyBatis团队完成的

    A.SqlSessionFactoryBean

    B.MapperFactoryBean(用的频率较少)

    C.MapperScannerConfigurer

     

     

    在需要被扫描的mapper接口上添加注解

    设置annotationClass属性

    MyBatis会自动扫描com.zr包下的所有接口,遇到带MyBatisMapper注解标记的将自动被MapperFactoryBean当做Mapper组件注册

    2.spring与MyBatis整合

    A.配置db.properties提供数据库连接的基本数据

    B.spring-db.xml文件配置数据库连接

       配置数据库连接池、配置SqlSessionFactoryBean、 配置SqlSessionFactory、配置Mapper扫描

    spring-db.xml

        <!-- 整合spring 和 mybatis -->
        <!-- 1.配置数据源 -->
        <util:properties id="props" location="classpath:db.properties"></util:properties>
        <bean id="ds" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="#{props.driver}"></property>
            <property name="url" value="#{props.url}"></property>
            <property name="username" value="#{props.username}"></property>
            <property name="password" value="#{props.password}"></property>
            
            <!-- 初始化连接数、最小、最大连接数设置 -->
            <property name="initialSize" value="1"></property>
            <property name="minIdle" value="1"></property>
            <property name="maxActive" value="20"></property>
            <!-- 连接的等待超时 -->
            <property name="maxWait" value="60000"></property>
            <!-- 自动扫描  关闭空闲连接 -->
            <property name="timeBetweenEvictionRunsMillis" value="60000"></property>
            <!-- 设置最小生存时间 -->
            <property name="minEvictableIdleTimeMillis" value="30000"></property>
        </bean>
        
        <!-- 2.配置 SqlSessionFactoryBean   该bean是spring用来生产SqlSession(sql会话)对象的工厂
            替代mybatis原来sqlSessionFactory,id建议使用sqlSessionFactory
         -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <!-- 数据源 -->
            <property name="dataSource" ref="ds"></property>
            <!-- 设置读取mybatis主配置文件   该配置可以设置也可以不设 -->
            <!-- <property name="configLocation" value="classpath:mybatis-config.xml"></property> -->
            <!-- 以属性配置的方式  替代原有的mybatis主配置文件的设置 -->
            <!-- 设置别名 -->
            <property name="typeAliasesPackage" value="com.rong.entity"></property>
            <!-- 设置引入哪些   mapper映射配置文件 -->
            <property name="mapperLocations" value="classpath:com/rong/dao/*.xml"></property>
        </bean>
        
        <!-- 3.配置   Mapper接口的代理类的创建工厂 MapperFactoryBean或MapperScannerConfigurer  -->
        <!-- <bean id="mapperFactoryBean" class="org.mybatis.spring.mapper.MapperFactoryBean">
            指定会话工厂 
            <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
            指定哪些mapper接口 需要创建代理子类
            <property name="mapperInterface" value="com.rong.dao.PrivilegeMapper"></property>
        </bean> -->
        <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 指定持久化层的需要生成代理子类对象的  包的位置 -->
            <property name="basePackage"  value="com.rong.dao"></property>
            <!-- 指定会话工厂    可以省略,spring会自动的通过Autoware(自动装配)进行注入-->
            <!-- <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> -->
            <!--过滤生成动态代理类的步骤: 
                1.设置自定义注解
                2.在需要生成代理子类的mapper接口上添加注解
             -->
            <property name="annotationClass" value="com.rong.annotation.MyBatisAnnotation"></property>
        </bean>

    3.SSM整合

    A.配置web.xml(spring-mvc配置)

    B.spring-mvc.xml

    C.spring-tx.xml

        <!-- 开启ssm的事务支持   所有原底层api的自动提交会失效 -->
        
        <!-- 1.配置事务管理器 -->
        <bean id="tx" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 配置事务管理器的数据源属性 -->
            <property name="dataSource" ref="ds"></property>
        </bean>
        <!-- 2.配置事务管理策略 -->
        <tx:advice id="txAdvice" transaction-manager="tx">
            <tx:attributes>
                <tx:method name="find*" propagation="REQUIRED" read-only="true"/>
                <!-- <tx:method name="select*" propagation="REQUIRED" read-only="true"/> -->
                <tx:method name="*" propagation="REQUIRED" read-only="false" rollback-for="Exception"/>
            </tx:attributes>
        </tx:advice>
        
        <!-- 3.配置事务管理切面配置
            事务从服务层开始控制
         -->
        <aop:config proxy-target-class="true">
            <aop:advisor advice-ref="txAdvice" pointcut="within(com.rong.service.*)"/>
        </aop:config>

    D.spring-db.xml(SM整合)

    E.spring-ssm.xml

    <!-- 引入其他  配置xml文件  按照不同的功能划分xml配置文件-->
        <import resource="spring-db.xml"/>
        <import resource="spring-mvc.xml"/>
        <import resource="spring-tx.xml"/>

    F.entity、dao、service、controller实现

  • 相关阅读:
    form表单生成的简单理解
    drupal里面的ajax最粗浅的理解-流程
    #array_parents #parents的区别
    hook_schema 小总结
    多语言的sitemap xml
    做百度竞价的步骤 不断总结
    为什么要baidu/Google问题 尽量少在群里问问题
    JavaScript Window对象
    JavaScript 3种内置对象
    图片轮播
  • 原文地址:https://www.cnblogs.com/57rongjielong/p/7899090.html
Copyright © 2020-2023  润新知