ssm整合

Mybatis整合

ssm角色扮演

ss:

  1. 两个容器 springmvc 和spring

  2. springioc是springmvcioc容器的父容器 setParent(root)连接点

  3. springmvc可以引用spring的bena

  4. 加载双方的容器 contextloaderlistener spring

    dispatcherservlet springmvc

ssm:

其实就是sm的整合,spring+mybatis

我们只需要在业务层拿到mapper,把其余的东西都交给springioc就行

ssm整合:
步骤一:导包

spring:

​ ioc|di core context beans expression

​ test

​ aop cglib spring-aop spring-aspects aopaliance aspectsjweaver

​ tx tx spring-jdbc

​ web servlet-api jsp-api jstl web webmvc

​ json:fastjackson,fileupload,io

​ mybatis: mysql datasource(c3p0),pageheilper ehcache-core mybatis-ehcache

​ mybatis-spring

写配置文件

配置一,mybatis-config.xml

  1. settings标签配置
  2. typealiases别名
  3. 分页插件

配置二 applicationContext-mvc.xml配置

还是原来的东西,因为mybatis和dao层没有直接接触

  1. 扫描controller

    <context:component-scan base-package="com.it" use-default-filters="false">
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:include-filter>
        </context:component-scan>
    
  2. 开启注解

    <!--开启注解-->
        <mvc:annotation-driven/>
    
  3. handlerMapping、handleradapter

    <!--mapping-->
        <mvc:default-servlet-handler/>
    
  4. 视图解析器

    <!--师徒解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/html/"/>
            <property name="suffix" value=".html"></property>
        </bean>
    
  5. 文件上传

    <!--文件上传-->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="defaultEncoding" value="UTF-8"/>
        </bean>
    
  6. 跨域

    <mvc:cors>
            <mvc:mapping path="/**"
                allowed-origins="*"
                         allowed-methods="POST, GET, OPTIONS, DELETE, PUT,PATCH"
                         allowed-headers="Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"
                         allow-credentials="true" />
        </mvc:cors>
    

配置三 applicationContext-service.xml

此处只配置service层相关的东西,

  1. 扫描service包

    <context:component-scan base-package="com.it.service"/>
    
  2. 事务管理器

     <!--管理器-->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
    
  3. 增强方法限定

    <!--增强规定-->
        <tx:advice id="advice" transaction-manager="transactionManager">
            <tx:attributes>
                <!--dql -->
                <tx:method name="find*" isolation="READ_COMMITTED" timeout="30" propagation="SUPPORTS" read-only="true"/>
                <tx:method name="select*" isolation="READ_COMMITTED" timeout="30" propagation="SUPPORTS" read-only="true"/>
                <tx:method name="query*" isolation="READ_COMMITTED" timeout="30" propagation="SUPPORTS" read-only="true"/>
                <tx:method name="search*" isolation="READ_COMMITTED" timeout="30" propagation="SUPPORTS" read-only="true"/>
                <tx:method name="have*" isolation="READ_COMMITTED" timeout="30" propagation="SUPPORTS" read-only="true"/>
    
                <!--dml-->
                <tx:method name="insert*" isolation="READ_COMMITTED" timeout="30" propagation="SUPPORTS" read-only="false"/>
                <tx:method name="add*" isolation="READ_COMMITTED" timeout="30" propagation="SUPPORTS" read-only="false"/>
                <tx:method name="post*" isolation="READ_COMMITTED" timeout="30" propagation="SUPPORTS" read-only="false"/>
                <tx:method name="save*" isolation="READ_COMMITTED" timeout="30" propagation="SUPPORTS" read-only="false"/>
    
    
                <!--跟新-->
                <tx:method name="update*" isolation="READ_COMMITTED" timeout="30" propagation="REQUIRED" read-only="false"/>
                <tx:method name="modify*" isolation="READ_COMMITTED" timeout="30" propagation="REQUIRED" read-only="false"/>
                <tx:method name="change*" isolation="READ_COMMITTED" timeout="30" propagation="REQUIRED" read-only="false"/>
                <tx:method name="flush*" isolation="READ_COMMITTED" timeout="30" propagation="REQUIRED" read-only="false"/>
    
                <!--shanchu-->
                <tx:method name="delete*" isolation="READ_COMMITTED" timeout="30" propagation="REQUIRED" read-only="false"/>
                <tx:method name="drop*" isolation="READ_COMMITTED" timeout="30" propagation="REQUIRED" read-only="false"/>
                <tx:method name="remove*" isolation="READ_COMMITTED" timeout="30" propagation="REQUIRED" read-only="false"/>
    
                <tx:method name="*" isolation="READ_COMMITTED"/>
            </tx:attributes>
        </tx:advice>
    
  4. 切面配置

    <!--切面-->
        <aop:config>
            <aop:pointcut id="pc" expression="execution(* com..service.impl.*Impl.*(..))"></aop:pointcut>
            <aop:advisor advice-ref="advice" pointcut-ref="pc"/>
        </aop:config>
    

最后一个喽 步骤四applicationContext-mapper.xml配置

一:引入数据库配置文件
<context:property-placeholder location="classpath:db.properties"/>
二: 数据库连接池以及引入配置
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"></property>
        <property name="jdbcUrl" value="${jdbc.url}"></property>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"></property>
     </bean>
三:sqlSessionFactory
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
    </bean>
四扫描mapper
<!--扫描所有mapper-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
        <property name="basePackage" value="com.it.mapper"></property>
    </bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值