2017-09-06 4 views
-1

Spring 서버가 실행 중이며 지금까지 필드 주입을 통해 Bean을 자동으로 호출하는 데 문제가 없었습니다. 어떤 이유로이 상황은 특정 상황에서 효과가 없습니다. 내 DatabaseConfiguration이 Database 클래스 안에 자동으로 구현되도록하고 싶습니다. DatabaseConfiguration은Spring Autowired가 BeanConfig에서 작동하지 않습니다.

@Component 
@ConfigurationProperties(prefix = "databaseConfiguration") 

주석이있는 응용 프로그램 속성에서로드됩니다. 이 클래스를 autowired 한 BeanConfig 내에서 성공적으로로드됩니다. 데이터베이스 클래스 내부

@Bean 
public Database getDatabase() { 
    return new Database(); 
} 

과 같이 구성에 대한 필드 정의가 : 지금은 콩과 같은 데이터베이스에 대한 정의를 가지고있는 getDatabase() 함수가 호출

@Autowired 
DatabaseConfiguration config; 

는, 나는 DatabaseConfiguration이 BeanConfig 클래스 내에서 올바르게 autowired 된 것을 확인했다. 그러나 어떤 이유로 그것은 생성 된 데이터베이스 인스턴스 안에서 null이다.

데이터베이스 클래스가 project.databases 패키지 안에 있으면 DatabaseConiguration과 BeanConfiguration은 project.config 패키지 내에 있습니다.

내 주요 응용 프로그램은 프로젝트 패키지 내부에 이러한 주석

의 주석을 붙일 수
@EnableScheduling 
@ComponentScan 
@EnableAutoConfiguration(exclude = { MongoAutoConfiguration.class, MongoDataAutoConfiguration.class }) 

사람이 이유를 autowiring 나던 작품은 여기에 단서가 있습니까?

답변

0

데이터베이스를 수동으로 생성합니다 (return new Database();). Spring은 아무 것도 autowire 할 기회가 없다.

Spring이 빈을 생성하도록하거나 수동으로 구성을 지정해야한다.

관련 문제