@Import
and @ImportResource
@Import
- Indicates one or more @Configuration classes to import. For import Java code-based configuration. e.g.
@Configuration
@Import({ DataSourceConfig.class, TransactionConfig.class })
public class AppConfig { ... }
See more in Using the @Import annotation
@ImportResource
- Indicates one or more resources containing bean definitions to import. For import XML-based configuration or other non-@Configuration bean definition resources. e.g.
@Configuration
@ImportResource({"classpath:spring-security.xml"})
public class SecurityConfig { ... }
See more in @Configuration class-centric use of XML with @ImportResource.
Springの@Autowiredが失敗した時
- @Componentの付け忘れてないか
- @Componentされたクラスが
@ComponentScan
の範囲外になっていないか@ComponentScan
が付いているclassのパッケージ以下しか自動スキャンしない- 必要ならbasePackagesに設定する)
- @Componentされたクラスの名前が他と重複している。試しにクラス名を変えると上手くいくかも
springのデフォルトスコープをprototypeにする
- springのDIでデフォルトのScopeはsingleton
- このscopeを変更する方法は2つ
- @Scopeアノテーションを使う
- component-scanの設定時にscope-resolverに「org.springframework.context.annotation.Jsr330ScopeMetadataResolver」を指定する