在spring boot中使用JDBC和spring data jpa为我的会话spring创建单独的数据源
Posted
技术标签:
【中文标题】在spring boot中使用JDBC和spring data jpa为我的会话spring创建单独的数据源【英文标题】:Creating separate data source for my session spring using JDBC and spring data jpa in spring boot 【发布时间】:2018-01-27 21:43:03 【问题描述】:我是 spring-boot 的新手,我想使用 h2 数据库配置我的 spring 会话与 jdbc,但它不会在我的 h2 嵌入式数据库中创建数据库和表,它使用 PostgreSQL 在 PostgreSQL 中创建它我在我的应用程序属性文件中配置的数据源。如何让我的 Spring 应用程序仅使用我的嵌入式 h2 db 来存储会话,同时不与我的 JPA 的 PostgreSQL 数据源冲突
https://github.com/eshiett1995/SessionProject。如果有人可以帮助我进行会议,我会很高兴
【问题讨论】:
你能粘贴代码或分享一个github URL到项目吗?没有代码,很难找到适用的解决方案。 @DevDio 会做 @DevDio 做到了github.com/eshiett1995/SessionProject 【参考方案1】:查看https://github.com/nomanbplmp/CustomSessionStoreExample 以查看完整示例。
为了使会话存储与主数据库以外的其他数据库一起使用,需要提供自定义会话存储库并覆盖 spring 的内部,如下所示。
@Configuration
@EnableJdbcHttpSession
class SessionConfig
@Bean
public JdbcOperationsSessionRepository sessionRepository()
DataSource ds = DataSourceBuilder.create().driverClassName("org.h2.Driver").username("sa").url("jdbc:h2:file:~/test").build();
return new SessionRepo(ds,new DataSourceTransactionManager(ds));
class SessionRepo extends JdbcOperationsSessionRepository
public SessionRepo(DataSource dataSource, PlatformTransactionManager transactionManager)
super(dataSource, transactionManager);
【讨论】:
它不起作用,使用@Primary,它只是为我在 h2db 中的实体创建一个表 它没有按我的意愿工作。它根据我的需要在 h2 数据库中创建了会话表,但不是在 PostgreSQL 中创建我的实体,而是在 h2 中创建它们。以上是关于在spring boot中使用JDBC和spring data jpa为我的会话spring创建单独的数据源的主要内容,如果未能解决你的问题,请参考以下文章
spring boot 系列之三:spring boot 整合JdbcTemplate
企业分布式微服务云SpringCloud SpringBoot mybatis (十七)Spring Boot中的事务管理
在spring boot中使用JDBC和spring data jpa为我的会话spring创建单独的数据源
使用 Spring Boot 和 Spring JDBC 在 oracle 中设置默认模式 = SOMETHING