![](/img/trans.png)
[英]Set Spring Boot application.properties based on Environment Variable
[英]Spring boot and EntityManager based on application.properties
我有以下用於Spring Boot application.properties
配置文件:
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1
spring.jpa.show-sql = true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.database=POSTGRESQL
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQL82Dialect
通過Spring ddl-auto
可以完美地為我創建表。 我希望有足夠的信息來從此“數據源”創建EntityManager
。
我發現創建EntityManager
的方法之一是:
EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( "DataSorceGoesHere" );
EntityManager entitymanager = emfactory.createEntityManager( );
問題是:
application.properties
配置的數據源的名稱是什么? application.properties
注入EntityManager
? 對於數據源的名稱,我認為我們可以使用此代碼將其與使用Spring Boot創建的所有bean的名稱一起顯示
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
System.out.println("List of beans provided by Spring Boot:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.print(beanName);
System.out.print(" ");
}
System.out.println("");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.