Action中,spring通过四种依赖注入方式注入:
- Set注入
- 构造器注入
- 实例工厂的方法注入
- 静态实例工厂的方法注入
总之
Spring IOC注入方式用得最多的是(1)(2)种,多谢多练就会非常熟练。
另外注意:
- 通过Spring创建的对象默认是单例的(和struts2相反),如果需要创建多实例对象可以在<bean>标签后面添加一个属性:
- <bean name="..." class="..." scope="prototype">
- struts2里的action是多例模式 (scope="prototype").原因是:struts 2的Action中包含数据,例如你在页面填写的数据就会包含在Action的成员变量里面。如果Action是单实例的话,这些数据在多线程的环境下就会相互影响,例如造成别人填写的数据被你看到了。即struts2的action已经有状态,
- 所以Struts2的Action是多例模式的。
- struts1里的action是单例模式,因为struts1里的action是无状态的,是cache起来的单例。
- 单例有什么好处?
本文学习资料转自:http://blessht.iteye.com/blog/1162131