簡體   English   中英

基於application.properties的Spring Boot和EntityManager

[英]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( );

問題是:

  1. application.properties配置的數據源的名稱是什么?
  2. 有沒有機會基於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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM