当前位置: 首页 > 知识库问答 >
问题:

启动后定义的Spring Boot数据源

刘京
2023-03-14
DataSourceBuilder
            .create()
            .username(username)
            .password(password)
            .url("jdbc:sqlserver://" + computerName + "\\SQLEXPRESS;DatabaseName=" + dataBaseName)
            .driverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
            .build();

我希望能够在应用程序启动后动态更改数据源。

共有1个答案

彭炳
2023-03-14

有多种方法可以解决你的问题。

您可以使用@PostConstruct注释:Javax的@PostConstruct注释可以用于注释一个方法,该方法应该在bean初始化后立即运行一次

也许您的代码看起来像这样:

@Component
public class DatabaseService {
    private DataSource dataSource;

    @PostConstruct
    public void init(){
        this.dataSource = DataSourceBuilder
        .create()
        .username(username)
        .password(password)
        .url("jdbc:sqlserver://" + computerName + "\\SQLEXPRESS;DatabaseName=" + dataBaseName)
        .driverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
        .build();
    }
}
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
 类似资料:
  • 搜索了一些类似案例未解决,问题出在哪里? 1.> 错误提示: Failed to bind properties under 'mapper' to tk.mybatis.mapper.entity.Config: Action: Update your application's configuration pom.xml ,重点关注 “tk.mybatis” application.prope

  • 我的spring boot项目不需要datasource配置,但当我运行它时,出现了错误: 申请启动失败 描述:配置数据源失败:未指定“url”属性,无法配置嵌入式数据源。 原因:无法确定合适的驱动程序类别 行动: 考虑以下内容:如果您想要一个嵌入式数据库(H2、HSQL或Derby),请将其放在类路径上。如果您有要从特定配置文件加载的数据库设置,您可能需要激活它(当前没有活动的配置文件) 我的a

  • 应用服务启动可以在多个地方进行调整,以下介绍两种方案,Dockerfile 和 平台详情页调整 Dockerfile CMD启动方式 看一下简单的例子: FROM hub.kpaas.nsini.com/app/hello:v0.0.3 CMD ["/go/bin/hello"] 启动命令写在CMD这个后面,如果后面有多个参数可以以逗号隔开例如: CMD ["static-web", "-pa

  • 我的应用程序的MainActivity从用户那里获取一些数据来计算他/她的BMI和BMR,并将这些数据用于应用程序的主要部分,即另一个名为DailyActivity的活动。我希望这样,用户第一次启动应用程序时,它会要求提供数据。但在第一次之后,每次用户启动应用程序时,都应使用之前输入的数据直接启动DailyActivity。(按下后退按钮也不应显示MainActivity)。我如何实现这一点?

  • 遇到这样的一个情况,有个定时任务启动间隔比较小,每分钟执行一次,然后在项目启动第一次执行的时候mybatis还没有完全初始化完成,导致报错了 我该怎么控制任务在mybatis初始化完成之后再启动 查了些order设置顺序啥的好像不符合我的要求 我的任务是 ThreadPoolTaskScheduler来实现,任务里面用了 SqlSession sqlSession = sqlSessionFact

  • 我试图为Joomla文章创建一个布局视图,以自定义在布局中呈现组件DP字段的方式。 我在 /templates/mytemplate/html/com_content/article/progetti.php中创建了一个新文件(这是default.php的副本) 在这里,我试图把这个代码(见参考这里:[https://joomla.digital-peak.com/documentation/16