2016-08-17 6 views
0

Я следующий файл конфигурации для загрузки Spring application.properties:Spring загрузки и EntityManager на основе 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 

Он прекрасно обрабатывается весной ddl-auto создает таблицы для меня. Я ожидаю, что достаточно информации для создания EntityManager из этого 'DataSource'.

я узнал, что один из способов создания EntityManager является:

EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("DataSorceGoesHere");  
EntityManager entitymanager = emfactory.createEntityManager(); 

Вопросов:

  1. Что такое имя моего источника данных сконфигурировано в application.properties?
  2. Есть ли какие-либо возможности для инъекций EntityManager на основе application.properties?
+1

Вы можете впрыснуть 'EntityManagerFactory' непосредственно. Это известно о вашем источнике даты, поэтому на самом деле требуется только вторая строка. –

+0

@StephaneNicoll, не могли бы вы расширить свой вопрос. Я не могу '@Autowire EntityManagerFactory' контекст не имеет соответствующего интерфейса для автопостановки. Что вы подразумеваете под «инъекцией»? –

+0

Я вижу, это моя IDE не узнает. Все хорошо, спасибо! –

ответ

0

для имени источника данных, я думаю, что мы можем показать его с именем всех бобов, созданных с пружинным ботинком с этим кодом

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(""); 
    } 
} 
Смежные вопросы