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