[SPRING] Spring : @Bean은 @Configuration 없이도 작동 할 수 있습니다.
SPRINGSpring : @Bean은 @Configuration 없이도 작동 할 수 있습니다.
https://projects.spring.io/spring-framework/에서 봄 프레임 워크 hellpworld 프로그램이 있습니다. @Configuration 주석을 삭제합니다. 그러나 프로그램은 이전과 같이 계속 실행될 수 있습니다. 왜? @Configuration 역할은 무엇입니까?
해결법
-
==============================
1.@Bean 인스턴스가 프로그램 할 수 있도록 @Component로 클래스를 표시 할 수 있습니다. 그렇게하면 라이트 모드라고합니다. 이 모드에서는 'bean 간 참조'를 사용할 수 없으며 메소드를 통해 다른 인스턴스를 참조합니다.
@Bean 인스턴스가 프로그램 할 수 있도록 @Component로 클래스를 표시 할 수 있습니다. 그렇게하면 라이트 모드라고합니다. 이 모드에서는 'bean 간 참조'를 사용할 수 없으며 메소드를 통해 다른 인스턴스를 참조합니다.
반면 @Configuration 클래스의 @Bean은 사이드 cglib 래퍼에 래핑됩니다.이 래퍼에서는이 빈 메서드에 대한 호출을 가로 채고 Bean 인스턴스를 컨텍스트에서 반환 할 수 있습니다. 당신은 '빈 간 참조'를 사용할 수 있습니다.
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Bean.html
과, @Configuration은 다른 주석을 결합하여 다른 많은 기능을 사용할 수있는 기능을 제공합니다.
다른 설정 가져 오기 @Import (DatabaseConfig.class)
리소스 가져 오기 @PropertySource ( "classpath : config.properties")
구성 요소 검사 사용 @ComponentScan (basePackages = { "com.sample. *"})
프로파일 @Profile ( "생산") 표시
@Enablexxxx 기능을 사용하려면
http://docs.spring.io/spring-framework/docs/4.0.4.RELEASE/javadoc-api/org/springframework/context/annotation/Configuration.html
-
==============================
2.Spring Framework 4.3.17.RELEASE를 사용하고 있습니다.
Spring Framework 4.3.17.RELEASE를 사용하고 있습니다.
ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
AppConfig는 @configuration 주석을 달지 않습니다.
@ComponentScan(basePackages={"tn.esprit.repository", "tn.esprit.service", "tn.esprit.conf"}) @Import(DataConf.class) @EnableTransactionManagement //@Transactional public class AppConfig {
@ComponentScan과 @import는 @configuration없이 잘 작동합니다. 설명이 뭐야? 이것은 4.3 버전에만 해당됩니까?
from https://stackoverflow.com/questions/40256702/spring-bean-can-still-work-without-configuration by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] RestTemplate을 오프라인으로 사용하여 클래스를 unittest하는 방법은 무엇입니까? (0) | 2019.07.15 |
---|---|
[SPRING] Thymeleaf의 입력 유효성 검사 (0) | 2019.07.15 |
[SPRING] AmazonS3 연결 관리 (0) | 2019.07.13 |
[SPRING] 스프링 배치 단계 범위 작업 방법 (0) | 2019.07.13 |
[SPRING] web.xml을 사용하지 않고 추적 모드를 쿠키로 설정하여 추가 된 세션 ID를 제거합니다. (0) | 2019.07.13 |