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下面,也不扫描。
引用了很多