spring注解配置
base-package属性指定要扫描的包,改包及其子包中的带有如下注解的Bean都会自动注册到IOC容器中
- @Repositoty 数据访问
- @Component 通用组件
- @Service 服务类
- @Controller 控制器
属性注解 @Resource
事务注解 @Transcation
<!-- 启用Spring 注解 -->
<context:annotation-config/>
<!-- 启用组件扫描 -->
<context:component-scan base-package="com.yq.sp02"/>
<!-- 定义数据源到IOC中 -->
<bean class="org.apache.commons.dbcp2.BasicDataSource" name="ds">
<property name="driverClassName" value="${db.dbcp.driverClassName}"/>
<property name="url" value="${db.dbcp.url}"/>
<property name="username" value="${db.dbcp.username}"/>
<property name="password" value="${db.dbcp.password}"/>
<property name="initialSize" value="${db.dbcp.initialSize}"/>
<property name="maxTotal" value="${db.dbcp.maxTotal}"/>
<property name="maxIdle" value="${db.dbcp.maxIdle}"/>
<property name="minIdle" value="${db.dbcp.minIdle}"/>
<property name="maxWaitMillis" value="${db.dbcp.maxWaitMillis}"/>
</bean>
<!-- 配置事务管理器 -->
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" name="transactionManager">
<property name="dataSource" ref="ds"/>
</bean>
<!-- 启用注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
Spring和Mybatis的整合
-
配置操作Mybatis的SQLSessionFactory的工厂类
-
配置Mybatis生成Mapper接口实例类
<!-- 配置操作MyBatis的 SqlSession的工厂类 -->
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sessionFactory">
<!-- 依赖的数据源 -->
<property name="dataSource" ref="ds"/>
<!-- 配置实体类别名, 使用实体类包扫描方式建立,建立的别名就是类名 -->
<property name="typeAliasesPackage" value="com.yq.tx01.entity"/>
<!-- 加载所有的 *Mapper.xml -->
<property name="mapperLocations" value="classpath*:com/yq/tx01/mapper/*Mapper.xml"/>
</bean>
<!--方式一Mapper获取接口类-->
<!-- 配置Mybatis的 Mapper接口实例类 -->
<!-- <bean id="empMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
指定接口位置
<property name="mapperInterface" value="com.yq.tx01.mapper.EmpMapper"/>
指定sessionFactory,配合的xml
<property name="sqlSessionFactory" ref="sessionFactory"/>
</bean> -->
<!--常用:方式二Mapper获取接口类-->
<!-- 配置扫描生成Mapper接口对象的bean -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 指定扫描Mapper接口的包 -->
<property name="basePackage" value="com.yq.tx01.mapper"/>
<!-- 指定sessionFactory,配合的xml -->
<property name="sqlSessionFactory" ref="sessionFactory"></property>
</bean>