小编Kir*_*nov的帖子

spring boot动态更改数据库

如何在运行Spring Boot应用程序时更改数据库?当RestController通过连接参数获取请求时,我需要连接另一个db.这是我的RestController的一部分.

@RequestMapping(value = "/change",method = RequestMethod.GET)
public ResponseEntity<?> change(@RequestParam String ip, @RequestParam String port,
                                @RequestParam String dbname, @RequestParam String username,
                                @RequestParam String password ){
    //change datasource here
    return new ResponseEntity<>(HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)

清除事物.我是Spring和Spring Boot的新手.所以我希望看到没有旧时尚Spring xmls的解决方案.这是我当前的数据库配置.

@Configuration
@EnableJpaRepositories("su.asgor.dao")
@EnableTransactionManagement
@ComponentScan("su.asgor")
public class DatabaseConfig {

    @Bean
    public DataSource dataSource() {
        BasicDataSource ds = new BasicDataSource();
        ds.setUrl("jdbc:postgresql://localhost:5432/portal74");
        ds.setDriverClassName("org.postgresql.Driver");
        ds.setUsername("postgres");
        ds.setPassword("system");

        ds.setInitialSize(30);
        ds.setMinIdle(30);
        ds.setMaxIdle(60);
        ds.setTimeBetweenEvictionRunsMillis(30000);
        ds.setMinEvictableIdleTimeMillis(60000);
        ds.setTestOnBorrow(true);
        ds.setValidationQuery("select version()");
        return ds;
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
        em.setDataSource(dataSource());
        em.setPackagesToScan("su.asgor.model"); …
Run Code Online (Sandbox Code Playgroud)

spring spring-boot

6
推荐指数
1
解决办法
9757
查看次数

标签 统计

spring ×1

spring-boot ×1