我将Spring 3.1.2和Hibernate 4.1.7用于我的Web应用程序。我现在要配置这两个。我有我的hibernate.cfg.xml
档案:
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!--
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
-->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>
我的webapp-servlet.xml
spring配置文件:
<beans>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="configLocation">
<value>
classpath:hibernate.cfg.xml
</value>
</property>
<property name = "dataSource" ref = "dataSource"></property>
</bean>
<bean id = "dataSource" class = "org.apache.commons.dbcp.BasicDataSource">
<property name = "driverClassName" value = "com.mysql.jdbc.Driver" />
<property name = "url" value = "jdbc:mysql://localhost:3306/test" />
<property name = "username" value = "root" />
<property name = "password" value = "root" />
<property name = "maxActive" value = "10" />
</bean>
</beans>
DataSource
的I可以使用吗?您不需要两者。您可以摆脱hibernate.cfg.xml
并配置中的所有内容LocalSessionFactoryBean
,也可以hibernate.cfg.xml
按原样重用现有内容(在这种情况下,您无需DataSource
在Spring config中进行配置)。
您有以下选择:
使用嵌入式数据库 -适用于测试和学习目的
使用DriverManagerDataSource
-这是一个简单的非池化数据源,可用于测试等(不建议用于生产环境)
使用连接池,例如DBCP或c3p0
如果部署到应用程序服务器,则可以使用应用程序服务器通过JNDI提供的连接池
您当前的配置已足够,但缺少Spring事务管理的支持。为了启用它,您需要
宣布 HibernateTransactionManager
添加<tx:annotation-driven>
以启用声明式事务管理(@Transactional
)
声明TransactionTemplate
是否要使用程序化事务管理(使用它来克服声明式事务管理的局限性)
另外,不要忘记从Hibernate配置中删除与事务相关的属性,因为它们可能与Spring事务管理冲突
我正在尝试使用Spring-jpa-data中的Crud存储库: 我的数据访问bean配置如下: 因此,如您所见,我有两个数据源、两个EntityManagerFactories、两个TransactionManager和其他。。。 但我只将一个EntityManagerFactory传递到注释中()。 问题是:两个如何通过Spring-jpa-data使用多个数据源(entityManagerF
问题内容: 使用Spring Boot我可以用以下方法实例化一个: 码: 特性: 这将创建一个数据源类: 如何以编程方式设置DataSource用户名/密码? 我们有一项政策,不要以纯文本形式存储凭据,我必须在工作的地方使用特定的凭据提供程序。 问题答案: 您可以使用,如果你使用的是首发。另外,为了覆盖默认的自动配置Bean,您需要将Bean标记为 就我而言,我具有以prefix 开头的属性。 例
代码: 属性: 这将创建一个类为的数据源
29.1 配置DataSource Java的javax.sql.DataSource接口提供了使用数据库连接的标准方法。传统上,DataSource使用URL以及一些凭据来建立数据库连接。 可以在“How-to”章节中查看更多高级示例,一般可以完全控制DataSource的配置。
但是,我在spring-boot文档中发现了以下内容。https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-configuration-classes.html 它赞成使用Java配置而不是XML配置。Java配置中的更改需要重新编译。然而,这让我想到为什么文档偏爱Java配置。 Internet上已经发
我目前正在开发一个定制的配置客户端,比如SpringCloud配置客户端。原因是SpringCloudConfigClient在我的特殊情况下没有涵盖一些特殊情况。 为此,像SpringCloudConfigClient一样,我使用的是SpringCloudContext。正如我所看到的,SpringCloudConfigClient在引导阶段加载其配置,但我看不出原因。 在我的自定义配置客户机中