spirng3.0 IOC

spring 3.0 提供了灵活多变的bean声明方式 个人任务基于xml和annotation方式联合使用是一种比较合理的方式,下面是使用过程中的需要注意的点
1:每一个DispatchServlet都有自己的作用域,他是继承自公共域,所以公共域中的所有定义在dispatchServlet中是可以直接使用的。(注意:用注释定义的资源全部属于子类,也就是DispatchServlet的作用域,在公共域中不能引用)
2:首先在xml中声明<context:component-scan base-package="com.td.mvc"></context:component-scan> 意思是需要扫描注释的路径。
然后可以用@service注释来定义bean 或者@control来定义bean
3:在引用的过程中可以用@resource(name="beanName")在set方法上定义需要引用的bean或者定义在参数上,如果是定义在参数上,可以将set方法省略(推荐)。注意:有时候用@AutoWired可以而用@Resource不行,这是以为@Resourec是J2EE中的定义,你需要加入Common-Annotations.jar这个包,一切问题都没了。
4:如果需要使用@Aspect注解,需要在spring中添加
    <aop:aspectj-autoproxy>
    <aop:include name="log*"/>
    </aop:aspectj-autoproxy>
name 是一个正则表达式,对应在context中相应的bean名字
5:@service 可以和 @Aspect同时使用

疑问(还未解决):
1、如果在xml中定义了bean,然后在相应bean中用@Resource做引用,会出现引用为空的情况,个人推测是xml配置和annotation之间有先后顺序,但是如果bean不在xml中定义,直接用@Service注解定义,则可以和@Resource一起使用。

猜你喜欢

转载自bruceyangblog.iteye.com/blog/1294124
ioc
今日推荐