Ho una configurazione di progetto utilizzando Spring Boot 0.5.0.M5.Avvio a molla - Ambiente @Autowired genera NullPointerException
In uno dei file di configurazione sto provando a @Autowire Environment
ma non riesce con uno NullPointerException
.
Ecco quello che ho finora:
Application.java
JpaConfig.java dove sto cercando di @Autowire Environment
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = "com.ui.persistence.repository")
public class JpaConfig {
private static final String DATABASE_DRIVER = "db.driver";
private static final String DATABASE_PASSWORD = "db.password";
private static final String DATABASE_URL = "db.url";
private static final String DATABASE_USERNAME = "db.username";
private static final String HIBERNATE_DIALECT = "hibernate.dialect";
private static final String HIBERNATE_SHOW_SQL = "hibernate.show_sql";
private static final String ENTITYMANAGER_PACKAGES_TO_SCAN
= "entitymanager.packages.to.scan";
@Autowired
private Environment env;
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getProperty(DATABASE_DRIVER));
dataSource.setUrl(env.getProperty(DATABASE_URL));
dataSource.setUsername(env.getProperty(DATABASE_USERNAME));
dataSource.setPassword(env.getProperty(DATABASE_PASSWORD));
return dataSource;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean
= new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setDataSource(dataSource());
entityManagerFactoryBean.setPersistenceProviderClass(
HibernatePersistence.class);
entityManagerFactoryBean.setPackagesToScan(
env.getProperty(ENTITYMANAGER_PACKAGES_TO_SCAN));
entityManagerFactoryBean.setJpaProperties(hibernateProperties());
return entityManagerFactoryBean;
}
}
sto cercando di caricare le proprietà del database configurate in un file di proprietà. Tuttavia, lo Environment
non viene iniettato e il codice ha esito negativo con NullPointerException
. Non ho alcuna configurazione nei file XML.
Per le proprietà del file Ho configurato PropertySourcesPlaceholderConfigurer
questo modo:
@Configuration
@PropertySource("classpath:database.properties")
public class PropertyConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertyPlaceHolderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
ho provato scambiando @Autowired
, @Resource
e @Inject
, ma niente ha funzionato finora. Gradirei qualsiasi aiuto. Grazie.
si può mostrare la traccia dello stack? Inoltre, c'è qualcosa che fornisce l'ambiente? Penso che tu abbia bisogno di una classe che abbia un metodo che renda uno contrassegnato con '@ Bean'. Inoltre, potresti essere in grado di usare '@ Value' per impostare le proprietà invece di ottenere un ambiente e ottenerle in questo modo. – CodeChimp
Ho provato con @Value, non ha funzionato. La traccia dello stack è solo NullPointerException perché le variabili non sono state impostate. Grazie. – imme