1.首先整合dao
第一步:配置mybatis自己的配置文件SqlMapConfig.xml
<configuration>
<!-- 全局setting配置,根据需要添加 -->
<!-- 配置别名 -->
<typeAliases>
<!-- 批量扫描别名 -->
<package name="jun.ssm.po" />
</typeAliases>
<!-- 配置mapper
由于使用spring和mybatis的整合包进行mapper扫描,这里就不需要配置了,但须遵循:mapper.xml和mapper.java文件同名且在一个目录 -->
<!-- <mappers> </mappers> -->
</configuration>
第二步:配置spring配置文件applicationContext-dao.xml
<!-- 配置数据源 -->
<!-- 加载配置文件 -->
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- 数据源,使用 c3p0 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driver}"></property>
<property name="jdbcUrl" value="${url}"></property>
<property name="user" value="${username}"></property>
<property name="password" value="${password}"></property>
</bean>
<!-- sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 加载mybatis的配置文件 -->
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property>
<!-- 数据源 -->
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- mapper扫描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 扫描包路径,如果扫描多个包,中间使用半角逗号分隔 -->
<property name="basePackage" value="jun.ssm.mapper"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
2.然后整合service,让spring管理service接口
首先创建applicationContext-service.xml
<!-- 定义联系人的service -->
<bean id="linkManService" class="jun.ssm.service.impl.LinkManServiceImpl"></bean>
还有配置事务控制,创建applicationContext-transaction.xml
<!-- 事务管理器
对mybatis操作数据库的事务控制,spring使用jdbc的事务控制类
-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 数据源
dataSource在applicationContext-dao.xml中配置了
-->
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 传播行为
变向规范代码
-->
<tx:method name="save" propagation="REQUIRED"/>
<tx:method name="delete" propagation="REQUIRED"/>
<tx:method name="insert" propagation="REQUIRED"/>
<tx:method name="update" 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(* jun.ssm.service.impl.*.*(..))"/>
</aop:config>
3.整合springmvc
创建springmvc.xml,配置处理器、适配器、视图解析器
<!-- 对于注解的Handler进行组件扫描 -->
<context:component-scan base-package="jun.ssm.controller"></context:component-scan>
<!-- 使用mvc:annotation-driven代替注解映射器和注解适配器
mvc:annotation-driven默认加载很多的参数绑定方法,比如json转换解析器就默认加载了
实际开发使用这种方法
-->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 视图解析器
解析jsp,默认使用jstl,classpath下需要jstl包
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
4.加载spring容器
建议使用通配符在web.xml中加载配置文件
<!-- 加载spring容器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/spring/applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 配置spring前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>