<?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"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
">
<!--扫描service层注解-->
<context:component-scan base-package="cn.meco.aisell.service"/>
<!--读取资源文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--配置连接池-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--集成JPA,获取EntityManagerFactory对象 Alt + ins 自动生成
LocalContainerEntityManagerFactoryBean就是一个Factory对象
底层的getObject()方法返回一个EntityManagerFactory对象
-->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!--扫描domain中的JPA注解-->
<property name="packagesToScan" value="cn.meco.aisell.domain"/>
<!--配置适配器,JPA实现规范有很多,这里配置Hibernate-->
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<!--配置方言-->
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect"/>
<!--建表策略 true就是JPA中的update,false什么都不做-->
<property name="generateDdl" value="false"/>
<!--控制台显示SQL-->
<property name="showSql" value="true"/>
</bean>
</property>
</bean>
<!--配置Spring对事物的支持-->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<!--开启事物的注解-->
<tx:annotation-driven/>
<!--用SpringDataJpa的方案去扫描它
只要发现接口继承了JpaRepository接口,就自动完成CRUD以及分页等功能
-->
<jpa:repositories base-package="cn.meco.aisell.repository"
entity-manager-factory-ref="entityManagerFactory"
transaction-manager-ref="transactionManager"
factory-class="cn.meco.aisell.repository.BaseRepositoryFactoryBean"
/>
<!--引入shiro配置文件-->
<import resource="classpath:applicationContext-shiro.xml" />
</beans>