spring jpa结合hibernate配置

首先,为什么要用spring jpa结合hibernate,原因很简单,hibernate在结合spring jpa后,变得更方便了,代码量大大减少,查询数据库库起来更方便了。

我们先来看看如何配置spring jpa;配置spring jpa之前,我们要先配置数据库源,如下


	
		
			oracle.jdbc.driver.OracleDriver
		
		
			jdbc:oracle:thin:@127.0.0.1:1521:test
		
		
		
			root
		
		
			root
		
		
			5
		
		
			1
		
		
			1
		
	
为什么要在dataSource中加 destory-method="close" abstract="false" lazy-init="default" autowire="default"等参数呢?

我一个一个来解答疑问。第一,加destory-method="close"从字面上的理解是,销毁方法关闭,我认为可以理解为关闭其他方法对该'数据库'bean的销毁,保证数据库的保持连接性能,我只是简单的回答了下。网上搜索的回答也非常片面,有兴趣可以看看该博客

http://alinazh.blog.51cto.com/5459270/1276304  。那么abstract="false"又是什么呢?我自己一看这个设置我第一的认识就是该方法是抽象方法关闭(不允许抽象),那到底是不是呢?从网上收集资料来看,这个的意思是‘false’不允许被其他实例化。第三,lazy-init="default"

这个设置就非常的关键了,加了这个后可以减少不必要的操作,从 http://blog.csdn.net/mezheng/article/details/7772073 该博客来看,它的作用是不实例化,有利于容器效率,对于不需要先使用的不管。第四,autowire="default" 自动装配功能,连数据库bean那就不需要配置了。接下来说说如何配置这个数据库线程池配置,首先配置驱动程序(不同的数据库有不同的驱动),然后就是‘jdbcurl’这个就是链接数据库的地址,有了地址之后就是账号,密码,然后就是配置线程池,其实还有许多配置,在这就不一一讲了,有兴趣可以参考 

http://www.2cto.com/database/201503/382805.html 讲解比较详细。那么数据源配置好了,接下来就是配置spring jdbc了,


	
		
		
		
		
			
				
				org.hibernate.cfg.ImprovedNamingStrategy
			
		
	
		class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
		
	

			transaction-manager-ref="transactionManager"
		factory-class="BasicRepositoryFactoryBean"
		entity-manager-factory-ref="entityManagerFactory" />


	
	
		
	


	
			proxy-target-class="true" />
这是jpa的配置,配置entityManagerFactory子属性dataSource,也就是数据源,jpaVendorAdapter这个很关键,它是指定jpa管理的类别,packagesToScan是指定jpa扫描的目录 jpaProperties中配置了命名规则如表名是My_NAME则转为MyName.

到这里,spring jpa托管hibernate配置已经基本完成了。在配置Spring Data Jpa 中有个factory-class="BasicRepositoryFactoryBean"这个是用来生成例如hibernate的sessionFactory的中间件,

public class BasicRepositoryFactoryBean>
		extends JpaRepositoryFactoryBean {

	@Override
	protected RepositoryFactorySupport createRepositoryFactory(
			EntityManager entityManager) {

		return new BasicJpaRepositoryFactory(entityManager);
	}
}





你可能感兴趣的:(spring)