クラスが@Configuration
アノテーションを使用すると、Springはそれを構成クラスとして扱い、処理してSpring Beanを生成および管理します。このタイプには、通常、1つ以上の
@Configuration
@Bean
@Configurationのコアコンセプト
代理店のメカニズム
コンポーネントと統合されています
@Bean
(または注釈付きのクラス)で@Bean
を使用すると、
注入
を許可しますクラスは、ビーンの作成に必要な依存関係アイテムを解決するために、コンストラクターまたはフィールドベースに基づいた依存関係の注入をサポートします。 @ComponentScan
@SpringBootApplication
@Configuration
@bean Method
:Beanを明示的に定義します。
@Configuration
シングルエクサムの動作
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()); } }
myController()
またはmyService()
注入値を使用します。 MyService
4。
<<>または@Configuration public class DataConfig { @Bean public DataSource dataSource() { // 配置并返回数据源 } } @Configuration public class ServiceConfig { @Bean public UserService userService() { return new UserServiceImpl(); } }
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()); } }
@ConfigurationProperties
@Value
注意する必要がある事項
@Configuration public class DataConfig { @Bean public DataSource dataSource() { // 配置并返回数据源 } } @Configuration public class ServiceConfig { @Bean public UserService userService() { return new UserServiceImpl(); } }
@Configuration
new
<循>サイクロン依存性相互に依存する豆を定義するときは、循環依存性を引き起こすため、注意してください。
@Configuration public class AppConfig { @Value("${app.name}") private String appName; @Bean public AppService appService() { return new AppService(appName); } }
再ロードの注釈方法を避けてください。
@Lazy
の機関メカニズムは効果的ではありません。構成クラスを最終的にマークしないでください。
@Bean
の混合を避けます。処理方法が異なるため、これは予期しない動作につながる可能性があります。
@Configuration
<赖>@Component
に頼って:各豆は別の豆に依存し、スプリングは依存関係の関係を自動的に解決します。 @Configuration
@Configuration
<重>は、Bean
@Configuration @ComponentScan(basePackages = "com.example.myapp") public class AppConfig { // 必要时使用显式Bean }
DataSource
メソッド、およびJdbcTemplate
ファイナルを使用します。 以上がspring-: @configuration-in-depthの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。