spring注解略解

@Scope("prototype")

    如果ACTION中不@Scope("prototype"),有可能报找不到XXXACTION的错误!写上这个就表示每次请求都重新创建一个ACTION,与SINGALON对应,俗称“多例”。

   @Service(“aaaaa”)。这种bean默认是“singleton”的。

----------------------------------------------------------------------------------------------------------------------------------------------------------

@Service

   用于标注业务层组件,注意得注释在实现类中,不要注释在接口上。在action中引用时用的是接口

   接口

   接口实现

   action中

@Controller

   用于标注控制层组件(如struts中的action)  *单例(action中不要定义属性,如果有太多属性则用scope("prototype")多例)

@Repository

   用于标注数据访问组件,即DAO组件

@Component

   泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。前面的 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。

属性注入---------------------------------------------------------------------------------------------------------------------------------------------------------------------

@Autowired

   后不需要getter()和setter()方法,spring也能够自动注入

@Qualifier

   如果有多个实现类可用此标签,指定注入哪个实现类,否则可以省略,只写@Autowired

@Resource默认是按照名称来装配注入的

 

@Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入;

@Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier一起使用;

@Resource注解是又J2EE提供,而@Autowired是由Spring提供,故减少系统对spring的依赖建议使用  

@Resource的方式;

@Resource和@Autowired都可以书写标注在字段或者该字段的setter方法之上

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

spring容器中配置注解

<context:annotation-config/>
     <context:component-scan base-package="com.xxx.xxx.base">
        <context:include-filter type="annotation"
            expression="org.springframework.stereotype.Repository"/>
    </context:component-scan>

,,,,,,,,

<context:annotation-config> 是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)上面的注解。

<context:component-scan>除了具有<context:annotation-config>的功能之外,<context:component-scan>还可以在指定的package下扫描以及注册javabean 。

 有了<context:component-scan>,另一个<context:annotation-config/>标签根本可以移除掉,因为已经被包含进去了。

<context:component-scan>提供两个子标签:<context:include-filter>和<context:exclude-filter>各代表引入和排除的过滤。

context:include-filter对于include,我的理解是,除了扫描base-package包下面的子类,还扫描expression后面的包。
context:exclude-filter对于exclude,我认为,即使expression后面的包在base-package下面,也不扫描。

 

引用了很多

posted @ 2015-06-01 15:56  ~清风煮酒~  阅读(217)  评论(0编辑  收藏  举报