@Configuration
로 표시하십시오.
이 클래스는 Bean 정의의 원인이되고 Spring은 이러한 정의를 사용하여 응용 프로그램 컨텍스트를 설정합니다. @Configuration
@Bean
구성 요소와 통합
(또는주석이있는 클래스)와 함께 사용될 때
주석 클래스는 명시 적으로 정의 될 수 있으며 스프링은 다른 콩을 자동으로 스캔하고 등록 할 수 있습니다.주입 를 허용합니다 클래스 지원 생성자 또는 필드 기반의 종속성 주입을 지원합니다.
@Bean
기본 예
@bean 메소드 @Bean
: 명시 적으로 Bean을 정의하십시오.
모범 사례 1. 모듈 형 구성
@ComponentScan
2. 하드 코딩 값을 피하십시오
@SpringBootApplication
@Configuration
3. @componentscan을 사용하여
4. 사용 조건 Bean > 또는 와 같은 주석을 사용하여 콩을 조건부로 정의하고 특정 환경이나 구성에서만 콩 만로드했습니다.
<code class="language-java">import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfig { @Bean public MyService myService() { return new MyServiceImpl(); } @Bean public MyController myController() { return new MyController(myService()); } }</code>
@Value
수동 인스턴스형 Bean
<code class="language-java">@Configuration public class DataConfig { @Bean public DataSource dataSource() { // 配置并返回数据源 } } @Configuration public class ServiceConfig { @Bean public UserService userService() { return new UserServiceImpl(); } }</code>
@Configuration
솔루션 : new
코드를 재구성하여 주입하거나 를 주입합니다.
@bean 메소드
<code class="language-java">@Configuration public class AppConfig { @Value("${app.name}") private String appName; @Bean public AppService appService() { return new AppService(appName); } }</code>
및 를 혼합하지 마십시오. 처리 방법이 다르기 때문에 예상치 못한 행동으로 이어질 수 있습니다. @Lazy
@Bean
는 Bean 에 의해 재사용 될 수 있고 Bean은 여러 서비스에서 재사용 할 수 있습니다.
요약
목적 : @Configuration
는 농축 된 유형 보안 방법에서 Bean을 정의 할 수 있습니다.
피해야하는 트랩 : 수동으로 인스턴스화 된 Bean, 사이클 종속성, 무거운 하중 메소드 및 @Component
최종 사용. @Configuration
@Configuration
위 내용은 Spring- : @-depth 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!