【发布时间】:2019-02-01 01:21:01
【问题描述】:
我的应用程序在没有 spring boot 的情况下使用 spring web mvc 框架运行。现在我想使用 spring session JDBC 将 session 存储到应用程序使用的数据库中。我在网上找到的所有示例都是使用spring boot,如果不使用spring boot,他们使用的数据源配置是EmbeddedDatabase,如下所示:
@Bean
public EmbeddedDatabase dataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.H2)
.addScript("org/springframework/session/jdbc/schema-h2.sql").build();
}
我有使用 HikariCP 的数据源配置,我希望 Spring 会话使用此数据源配置。
@Bean
public DataSource dataSource() {
HikariConfig config = new HikariConfig();
config.setDriverClassName(env.getRequiredProperty("jdbc.driver"));
config.setJdbcUrl(env.getRequiredProperty("jdbc.url"));
config.setUsername(env.getRequiredProperty("jdbc.username"));
config.setPassword(env.getRequiredProperty("jdbc.password"));
config.setMinimumIdle(env.getRequiredProperty("jdbc.pool.minimumIdle", Integer.class));
config.setMaximumPoolSize(env.getRequiredProperty("jdbc.pool.maximumPoolSize", Integer.class));
config.addDataSourceProperty("cachePrepStmts", env.getRequiredProperty("jdbc.prop.cachePrepStmts"));
config.addDataSourceProperty("prepStmtCacheSize", env.getRequiredProperty("jdbc.prop.prepStmtCacheSize"));
config.addDataSourceProperty("prepStmtCacheSqlLimit", env.getRequiredProperty("jdbc.prop.prepStmtCacheSqlLimit"));
HikariDataSource ds = new HikariDataSource(config);
return ds;
}
如何使用我当前的配置与 spring session 集成?
【问题讨论】:
标签: spring spring-session spring-config