博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSM整合学习笔记
阅读量:6414 次
发布时间:2019-06-23

本文共 2319 字,大约阅读时间需要 7 分钟。

SSM整合核心:
1、持久层:
org.mybatis.spring.mapper.MapperScannerConfigurer
自动扫描 将Mapper接口生成代理注入到Spring
 
<!-- 使用mapper批量扫描器扫描mapper接口
规则:mapper.xml和mapper.java在一个目录 且同名即可
扫描出来mapper,自动让spring容器注册,bean的id就是mapper类名(首字母小写)
-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 会话工厂 -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
<!-- 扫描包路径
多个包中间用半角逗号分隔
-->
<property name="basePackage" value="cn.itcast.ssm.dao.mapper"/>
</bean>
 
2、整合业务层
 
Spring
管理service
整合目标:
Service
通过spring调用mapper
<!-- 用户管理 -->
<bean id="userService" class="cn.itcast.ssm.service.impl.UserServiceImpl"/>
 
3、控制层
action
中通过spring调用service
<!-- 组件扫描 只扫描action -->
<context:component-scan base-package="cn.itcast.ssm.action" />
 
 
<!-- 使用<mvc:annotation-driven />替换上边定义的处理器映射器和适配器 -->
<mvc:annotation-driven />
 
<!-- 视图解析器 解析jsp视图,默认使用jstl,要求classpath下有jstl的jar包 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 视图的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 视图的后缀 -->
<property name="suffix" value=".jsp" />
 
</bean>
 
逻辑视图说白了就是我们在action中return 的字符串。
<!-- 视图的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 视图的后缀 -->
<property name="suffix" value=".jsp" />
实际是,在配置文件中:/WEB-INF/jsp/字符串.jsp
 
@Autowired来指定自动装配,使用@Autowired可以标志setter方法、普通方法、和构造器
当@Autowired标注Field时Spring会把容器中的与该Field类型匹配的Bean注入该属性
 
 
事务控制
 
为了规范程序员编码,采用声明式事务配置方式。
 
在applicationContext.xml配置事务管理:
<!-- 事务管理器
   mybatis使用jdbc事务管理
    -->
   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <!-- 数据源 -->
      <property name="dataSource" ref="dataSource"/>
   </bean>
  
   <!-- 通知 -->
   <tx:advice id="txAdvice" transaction-manager="transactionManager">
      <!-- 配置传播行为 -->
      <tx:attributes>
         <tx:method name="save*" propagation="REQUIRED"/>
         <tx:method name="insert*" propagation="REQUIRED"/>
         <tx:method name="update*" propagation="REQUIRED"/>
         <tx:method name="delete*" propagation="REQUIRED"/>
         <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
         <tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
         <tx:method name="select*" propagation="SUPPORTS" read-only="true"/>
      </tx:attributes>
   </tx:advice>
  
   <!-- aop配置 -->
   <aop:config>
      <aop:advisor advice-ref="txAdvice"
       pointcut="execution(* cn.itcast.ssm.service.impl. *.*(..))"/>
</aop:config>
 
黄线是准备回归的类

转载地址:http://ondra.baihongyu.com/

你可能感兴趣的文章
lvs
查看>>
spring + spring-data-redist + Redis 单机、集群(cluster模式,哨兵模式)
查看>>
Error: Password file read access must be restricted: /etc/cassandra/jmxremote.password
查看>>
HDU Problem 4907 Take schedule 【二分】
查看>>
注解@Slf4j的作用
查看>>
linux 文件操作与目录操作
查看>>
解决IE6浏览器下position:fixed固定定位问题
查看>>
KMP串匹配算法解析与优化
查看>>
css3动画简介以及动画库animate.css的使用
查看>>
javascript DOM节点操作
查看>>
c++ invoke java in android
查看>>
meta 之 viewport
查看>>
Linux下文件 ~/.bashrc 和 ~/.bash_profile 和 /etc/bashrc 和 /etc/profile 的区别 | 用户登录后加载配置文件的顺序...
查看>>
关于在swiper轮播组件中使用echarts的'click'事件无效
查看>>
Android开源项目README规范
查看>>
asp.net core 教程(五)-配置
查看>>
Spring Bean Scope (作用域)
查看>>
Redis命令操作详解
查看>>
c++ map: 使用struct或者数组做value
查看>>
列表中的陷阱
查看>>