Eu tenho uma configuração projeto usando Primavera Bota 0.5.0.M5 .
Em um dos arquivos de configuração Eu estou tentando @Autowire Environment, mas que falha com um NullPointerException.
Aqui está o que eu tenho até agora:
Application.java
@EnableAutoConfiguration
@Configuration
@ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
JpaConfig.java onde eu estou tentando@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;
}
}
Estou tentando carregar as propriedades do banco de dados configurados em um arquivo de propriedades. No entanto, o Environmentnão é injectada e o código de falha com NullPointerException. Eu não tenho qualquer configuração em arquivos XML.
Para o arquivo de propriedades Tenho configurado PropertySourcesPlaceholderConfigurerda seguinte maneira:
@Configuration
@PropertySource(classpath:database.properties)
public class PropertyConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertyPlaceHolderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
Eu tentei troca @Autowired, @Resourcee @Inject, mas nada tem funcionado até agora. Gostaria de receber qualquer ajuda. Obrigado.













