[SPRING] Spring의 Java 설정 내에서 bean을 Autowire
SPRINGSpring의 Java 설정 내에서 bean을 Autowire
Java로 작성된 Spring 구성 내에서 Spring의 @Autowired 주석을 사용할 수 있습니까?
예 :
@Configuration
public class SpringConfiguration{
@Autowired
DataSource datasource;
@Bean
public DataSource dataSource(){
return new dataSource();
}
// ...
}
분명히 DataSource 인터페이스는 직접 인스턴스화 될 수 없지만 단순화를 위해 여기에 직접 인스턴스화했습니다. 현재, 위의 시도 할 때 데이터 원본 개체가 null로 남아 있으며 스프링에 의해 autowired 있지 않습니다.
@Autowired가 FactoryBean
그래서 내 질문에 구체적으로 : 데이터 소스와 관련하여이를 수행 할 수있는 방법이 있습니까? 또는 더 일반적으로 Spring Java Configuration 내에서 bean을 autowire하는 방법은 무엇입니까?
스프링 버전 3.2를 사용하고 있음에 유의해야합니다.
해결법
-
==============================
1.동일한 @Configuration 파일 내에서 DataSource bean에 대한 참조가 필요하면 bean 메소드를 호출하기 만하면된다.
동일한 @Configuration 파일 내에서 DataSource bean에 대한 참조가 필요하면 bean 메소드를 호출하기 만하면된다.
@Bean public OtherBean someOtherBean() { return new OtherBean(dataSource()); }
또는 @Bean 메소드에 자동으로 추가시켜야합니다.
@Bean public OtherBean someOtherBean(DataSource dataSource) { return new OtherBean(dataSource); }
@Configuration 클래스의 라이프 사이클은 사용자가 제안하는 것처럼 자동 와이어 링을 방지하는 경우가 있습니다.
-
==============================
2.어쩌면 당신은 @Autowired가 설정 파일에서 올바로 동작하지 않는 반면에 컨스 트럭 터를 사용하여 다른 설정 파일의 빈을 당신의 설정에 주입 할 수있다.
어쩌면 당신은 @Autowired가 설정 파일에서 올바로 동작하지 않는 반면에 컨스 트럭 터를 사용하여 다른 설정 파일의 빈을 당신의 설정에 주입 할 수있다.
@Configuration public class AppConfig { private DataSource dataSource; public AppConfig(DataSource dataSource) { this.dataSource = dataSource; } @Bean public OtherBean otherBean(){ return new OtherBean(dataSource); } }
-
==============================
3.@Configuration 클래스로 구성된 bean은 autowired 될 수 없으며,
@Configuration 클래스로 구성된 bean은 autowired 될 수 없으며,
따라서 @Autowiring과 @configuration을 함께 사용할 수는 없습니다.
from https://stackoverflow.com/questions/28747743/autowire-a-bean-within-springs-java-configuration by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 양식 값을 봄의 ""대신 Null로 지정 (0) | 2019.02.04 |
---|---|
[SPRING] 런타임시 단일 로거의 로그 수준을 변경하려면 어떻게합니까? [닫은] (0) | 2019.02.04 |
[SPRING] Spring MVC 컨트롤러 메소드의 유효한 리턴 타입은 무엇입니까? (0) | 2019.02.04 |
[SPRING] Tomcat은 웹 응용 프로그램의 컨텍스트에 후행 슬래시를 추가하지 않습니다. (0) | 2019.02.04 |
[SPRING] 기존의 Tomcat 웹 응용 프로그램에서 SSO를 구현하는 방법 (0) | 2019.02.04 |