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>
黄线是准备回归的类
原文地址:https://www.cnblogs.com/SharkBin/p/8966661.html