SSM整合学习笔记

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>
 
黄线是准备回归的类

猜你喜欢

转载自www.cnblogs.com/SharkBin/p/8966661.html