스프링 부트 0.5.0.M5을 사용하는 프로젝트 설정이 있습니다.스프링 부트 - 환경 @Autowired가 NullPointerException을 던졌습니다.
구성 파일 중 하나에서 @Autowire Environment
을 시도하고 있는데 그 중 하나가 NullPointerException
과 함께 실패합니다. 여기
Application.java를 내가 @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;
}
}
내가로드하려고 노력하고 있어요
@EnableAutoConfiguration
@Configuration
@ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
JpaConfig.java 특성 파일에 구성된 데이터베이스 특성. 그러나 Environment
은 삽입되지 않으며 코드는 NullPointerException
으로 실패합니다. XML 파일에 구성이 없습니다. 특성에 대해
PropertySourcesPlaceholderConfigurer
이런 식으로 구성한 파일 :
내가
@Autowired
,
@Resource
및
@Inject
교환 시도했지만 아무것도 지금까지 근무하지 않았다
@Configuration
@PropertySource("classpath:database.properties")
public class PropertyConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertyPlaceHolderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
. 어떤 도움을 주시면 감사하겠습니다. 감사.
당신이 스택 추적을 보여줄 수 일을? 또한 '환경'을 제공하는 것은 무엇입니까? '@ Bean'으로 표시된 것을 리턴하는 메소드가있는 클래스가 필요하다고 생각합니다. 또한'@ Value'를 사용하여 환경을 가져 와서 그 속성을 얻지 않고 속성을 설정할 수도 있습니다. – CodeChimp
@Value로 시도했지만 작동하지 않았습니다. 변수가 설정되지 않았으므로 스택 추적은 NullPointerException입니다. 감사. – imme