@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」を指定する

References

results matching ""

    No results matching ""