[英]Set password runtime with Hibernate / JPA
我有一個Web應用程序,在persistence.xml中定義了數據庫連接屬性。
我正在使用包含管理器持久性,並使用@PersistenceContext注入了實體管理器。
今天,數據庫的密碼在persistence.xml文件中,但是我寧願將其設置為運行時(向用戶詢問)。
我可以使用密碼運行時創建一個新的EntityManager,但是如何“覆蓋”已注入的EntityManager?
還有其他好的想法/方法嗎?
是的,這對於為不同環境配置配置文件有些擔心。
盡管它不能滿足密碼的“運行時”設置並替換對象,但仍將作為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("production")
定義另一個配置文件,然后從類路徑位置加載屬性文件。
使用Spring Boot,您可以將個人資料激活為
SPRING_PROFILES_ACTIVE=production mvn spring-boot:run
這可以使您更改密碼並在需要時彈回服務器。 無論如何,當您更改密碼時,連接都需要重新啟動。 因此,理想情況下,這應該使工作變得容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.