SSM integration study notes

SSM integration core:
1. Persistence layer:
org.mybatis.spring.mapper.MapperScannerConfigurer
Automatic scanning injects Mapper interface generation proxy into Spring
 
<!-- Use mapper batch scanner to scan mapper interface
Rule: mapper.xml and mapper.java are in the same directory and have the same name
Scan out the mapper, automatically register the spring container, the id of the bean is the mapper class name (the first letter is lowercase)
-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- Session Factory -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
<!-- scan package path
Separate multiple packages with commas
-->
<property name="basePackage" value="cn.itcast.ssm.dao.mapper"/>
</bean>
 
2. Integrate the business layer
 
Spring management service
Integration goals:
Service Call mapper through spring
<!-- User Management-->
<bean id="userService" class="cn.itcast.ssm.service.impl.UserServiceImpl"/>
 
3. Control layer
action call service through spring
<!-- Component scan only scans actions -->
<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>
 
黄线是准备回归的类

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325071864&siteId=291194637