Spring与Struts2的整合问题
Spring与struts2的整合问题
<!--[if !supportLists]-->1、<!--[endif]-->使用注入方式:
正常的情况下,当请求到来时,struts控制器拦截请求,然后实例化对应的action,这是它的默认行为。但是现在我们要用spring容器中提供的action,这样问题就出现了。
解决:struts2框架的lib包里提供了一个插件,struts2-spring-plugin,这个插件就是解决这个问题的,它的工作是这样的,它允许我们在给action配置class属性的时候,给它一个bean的id,这样当需要创建action类的时候,struts2提供的只是一个类似于虚壳,真正的类会从spring中去取,
<!--[if !supportLists]-->2、<!--[endif]-->使用注解
这种情况下,就是另一种机制了,当一个请求到达struts控制器的时候,会实例化一个action,但此时的action里面的业务类已经被我们通过注解的方式注入进去了。两种机制是不同的,第一种是:需要实例化的action由spring容器提供,第二种是实例化的action已经被注入。
Bean管理的方式:
@Component
@Service :常用的
@Repository
@named:需要提供javax.inject.jar包
注解:
@Autowired :这个注解是Spring框架提供的
@Inject 需要提供javax.inject.jar包,很小,3kb左右
@Resource :java中提供的注解,