一 区别注解
1.声明bean相关
@Component 不好定义的组件采用此声明
@Controller 控制层组件定义,例如struts2的action
@Service 业务层组件定义
@Repository 数据持久层,即DAO层的组件定义。
通常以上四者没有区别,但是依旧希望采用上述方法来声明不同bean,因为spring未来可能会给每个赋予特殊的功能
2.注入bean相关
@Resource与@Autowired功能相同,
@Autowired按byType自动注入
@Resource默认按
byName自动注入。
不声明,默认采用byName自动注入策略。
在注入多个bean中无法确认准确注入的bean时,可以通过@Qualifier 进行指定
3.生命方法相关
被注解一下2个关键字的方法会进行执行。他们的执行时间为
@PostConstruct 实例初始化之后
@PreDestroy 实例销毁之前
二 配置相关
1.关于spring的配置方面:
1.Spring2.5之后的自动扫描机制,自动将以上注解的类添加到spring的容器中管理
<context:component-scanbase-package=”需要扫描的包,*可以表示所有”>
[email protected](“prototype”)可以更改spring的的生命周期
scope分类
1.singleton(单一实例)
2.prototype
3. request ,session和globalsession
其中request可以看做prototype的一种特例
request/session适应于web程序,范围于servlet的scope一样。
globalsession适用于Portlet组件,用在servlet和session一样
2.关于web.xml配置方面
配置的加载顺序为
listener >> filter >> servlet >> spring
在不同模块之间如有调用关系,可通过提升该模块的优先级来提高调用顺序。
附:
spring相关会在这里总结。欢迎拍砖&补充。后面会总结出在高并发性分布式系统中spring出现的问题。