三、Spring层
1.spring-dao.xml
Spring整合Mybatis的相关配置文件;整合dao层
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--1.关联数据库配置文件--> <context:property-placeholder location="classpath:database.properties"/> <!--2.连接池 dbcp:半自动化操作,不能自动连接 c3p0:自动化操作,可以自动化的加载配置文件,并且可以自动设置到对象中 druid: hikari: --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${driver}"/> <property name="jdbcUrl" value="${url}"/> <property name="user" value="${user}"/> <property name="password" value="${password}"/> <!-- c3p0连接池的私有属性 --> <property name="maxPoolSize" value="30"/> <property name="minPoolSize" value="10"/> <!-- 关闭连接后不自动commit --> <property name="autoCommitOnClose" value="false"/> <!-- 获取连接超时时间 --> <property name="checkoutTimeout" value="10000"/> <!-- 当获取连接失败重试次数 --> <property name="acquireRetryAttempts" value="2"/> </bean> <!--3.sqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!--绑定Mybatis的配置文件--> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean> <!--4.配置dao接口扫描包,动态的实现了Dao接口可以注入到Spring容器中--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--注入sqlSessionFactory--> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!--要扫描的dao包--> <property name="basePackage" value="com.hxl.dao"/> </bean> </beans>
- 连接池
- dbcp:半自动化操作,不能自动连接
- c3p0:自动化操作,可以自动化的加载配置文件,并且可以自动设置到对象中
- druid: hikari:
扫描上面的Factory,动态的扫描到beanName中
2.spring-service.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--1.扫描service下的包--> <context:component-scan base-package="com.hxl.service"/> <!--2.将我们的所有业务类,注入到SpringIOC容器中,可以通过配置或者注解实现--> <bean id="BookServiceImpl" class="com.hxl.service.BookServiceImpl"> <property name="bookMapper" ref="bookMapper"/> </bean> <!--3.声明式事务配置--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!--注入数据源--> <property name="dataSource" ref="dataSource"/> </bean> <!--4.aop事务支持--> </beans>
要用aop事务支持的话需要导入一个AOP的织入包aspectjweaver
3.解决配置文件不在一块的情况
这里要保证他们在一块,否则是整合不了的;
圈中的地方汇报红,就证明没有整合到一块。
解决爆红的方式有两种
1.通过idea,让他们在同一个上下文中,module中使他们都在一个application下
2.通过import引入进来
<import resource="classpath:spring-service.xml"/>
3.可以在applicationContext中增加
<import resource="classpath:spring-dao.xml"/> <import resource="classpath:spring-service.xml"/>
4.业务类注入到Spring
可以通过配置spring-service.xml
<bean id="BookServiceImpl" class="com.hxl.service.BookServiceImpl"> <property name="bookMapper" ref="bookMapper"/> </bean>
注解实现