gpt4 book ai didi

java - 使用 Hibernate/JPA 设置密码运行时

转载 作者:行者123 更新时间:2023-12-02 09:09:08 24 4
gpt4 key购买 nike

我有一个 Web 应用程序,其数据库连接属性在 persistence.xml 中定义。

我正在使用包含管理器持久性以及使用 @PersistenceContext 注入(inject)的实体管理器。

现在数据库的密码位于 persistence.xml 文件中,但我宁愿在运行时设置它(询问用户)。

我可以使用密码运行时创建一个新的 EntityManager,但如何“覆盖”注入(inject)的实体管理器?

还有其他好的想法/方法吗?

最佳答案

是的,这有点担心为不同的环境配置配置文件。

虽然它不足以满足您的密码“运行时”设置并替换对象,但它将作为 spring bean 配置文件进行维护。

类似这样的东西;

@Configuration
@Profile("dev")
public class StandaloneDataConfig {

@Bean
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.HSQL)
.addScript("classpath:com/bank/config/sql/schema.sql")
.addScript("classpath:com/bank/config/sql/test-data.sql")
.build();
}

}

假设您想要加载生产配置文件?

您必须使用@Profile("product")定义另一个配置文件,并从类路径位置加载属性文件。

使用 Spring Boot,您可以将您的个人资料激活为

SPRING_PROFILES_ACTIVE=生产 mvn spring-boot:run

这可以让您在需要时更改密码并退回服务器。无论如何,当您更改密码时,连接需要重新启动。因此,理想情况下,这应该会使工作变得容易。

关于java - 使用 Hibernate/JPA 设置密码运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36173261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com