Springにおけるresourceとautowireの違い
1236 ワード
@Autowiredは@Qualifier(「beanName」)と組み合わせて使用でき、指定されたbeanを注入します.
@Autowired
@Qualifier("baseDao")
private BaseDao baseDao;
たとえば、同じインタフェース、2つのインプリメンテーションクラスであれば、この方法で注入を指定できます.
@Autowired(required=false)
は、springコンテキストにこのタイプのbeanが見つからない場合に使用されることを示す.new SoftPMServiceImpl();
private ISoftPMService softPMService = new SoftPMServiceImpl();
@Resourceアセンブリ順序1.nameとtypeを同時に指定した場合、Springコンテキストから唯一一致するbeanを見つけてアセンブリし、見つからない場合は例外を投げ出す2.nameを指定した場合、コンテキストから名前(id)が一致するbeanを探してアセンブリし、見つからない場合は例外を投げ出す3.typeを指定した場合、コンテキストからタイプが一致する唯一のbeanを見つけて組み立てると、見つからないか、複数見つけられないか、異常が投げ出されます.4.名前もtypeも指定されていない場合は、byName方式で自動的に組み立てる.一致しない場合は元のタイプに戻り、一致する場合は自動的にアセンブリされます.
使用方法は次のとおりです.
//@Resource(name="dataSource");
@Resource(type="DataSource.class");
@Resource
private DataSource dataSource;
//inject the bean named 'dataSource';