IOC Annotation_Resource_Component
1897 ワード
@Resource(重要)
a)加入:j 2 ee/common-annotations.jar
b)デフォルトは名前、名前が見つからない、タイプ別
c)特定の名称を指定できる
d)推奨使用
e)不足:ソースコードがないとannotationが使えずxmlしか使えない
public class SimpleMovieLister { private MovieFinder movieFinder;@Resource(name="myMovieFinder") public void setMovieFinder(MovieFinder movieFinder) { this.movieFinder = movieFinder; } }
-----------------------------------------------------
public class SimpleMovieLister { private MovieFinder movieFinder; @Resource public void setMovieFinder(MovieFinder movieFinder) { this.movieFinder = movieFinder; } }
名前を指定した場合は名前で検索し、名前を指定しない場合はTypeで検索します.
@Resourceの使用は@Autowiredより直感的です
-------------------------------------------------------------
Spring 2.5.6リリースでは、次の4つの注釈に区別はありません.
@Component @Service @Controller @Repository
クラスをコンポーネントとしてコンテナに生成し、Keyを指定します.
a)初期化名のデフォルトはクラス名の頭文字小文字
b)初期化beanの名前を指定できる
<beans ...> <context:component-scan base-package="org.example"/> </beans>
, @Component
@Component("userService") //
public class UserService {
//.....
}
使用時:
@Resource(name="userService") public void setUserDAO( UserDAO userDAO) { this.userDAO = userDAO; }