Ale*_*har 5 java spring datasource spring-boot
我有一个将使用 SQL Server 的 Spring Boot 应用程序。我希望能够在没有 application.properties 的情况下启动应用程序,并在启动后定义 url、用户名和密码(此时我将把所有内容写入 application.properties)。例如,我启动应用程序并从浏览器中使用这些参数填充表单。我尝试过使用 DataSourceBuilder 类,但发生得太早了。
DataSourceBuilder
.create()
.username(username)
.password(password)
.url("jdbc:sqlserver://" + computerName + "\\SQLEXPRESS;DatabaseName=" + dataBaseName)
.driverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
.build();
Run Code Online (Sandbox Code Playgroud)
我希望能够在应用程序启动后动态更改数据源。
van*_*gar -1
有多种方法可以解决您的问题。
\n\n您可以使用@PostConstruct注解:\nJavax\xe2\x80\x99s @PostConstruct注解可用于注解应在bean\xe2\x80\x99s初始化后立即运行一次的方法
\n\n也许你的代码看起来像这样:
\n\n@Component\npublic class DatabaseService {\n private DataSource dataSource;\n\n @PostConstruct\n public void init(){\n this.dataSource = DataSourceBuilder\n .create()\n .username(username)\n .password(password)\n .url("jdbc:sqlserver://" + computerName + "\\\\SQLEXPRESS;DatabaseName=" + dataBaseName)\n .driverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver")\n .build();\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n你还需要这个依赖:
\n\n<dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-data-jpa</artifactId>\n</dependency>\nRun Code Online (Sandbox Code Playgroud)\n\n这里有更多方法:教程
\n| 归档时间: |
|
| 查看次数: |
2466 次 |
| 最近记录: |