`
sbpya
  • 浏览: 615670 次
  • 性别: Icon_minigender_1
  • 来自: 杭州,长沙
社区版块
存档分类
最新评论

struts2与spring集成时,关于Action类中成员bean自动注入的问题

阅读更多

public class LoginAction extends ActionSupport{

  
 private LoginService loginService;

 
 public void setLoginService(LoginService loginService) {
  System.out.println("init Service......");
  this.loginService = loginService;
 }

 

 

spring配置

 

<bean id="loginService"  class="org.xxxxx.services.impl.LoginServiceImpl"></bean>

 <bean id="loginAction" class="org.xxxxx.action.LoginAction">

 

 </bean>

 

struts配置

<action name="login" class="org.xxxxx.action.LoginAction">
   <result name="success">/result.jsp</result>
   <result name="error">/login.jsp</result>
  </action>

 

注意看以上两个红线部分,在struts.xml中action指定的class像上面这种方式指定全类路径名的话,这时,不论spring配置文件中的<bean id="loginAction" class="org.xxxxx.action.LoginAction"></bean>有没有指定<property name="loginService" ref="loginService"/>,只要有<bean id="loginService" .../>存在,并且这个ID的名字与Action中成员bean的名字一致,当实例化Action类时,会一并将loginService的实例注入

 

如果<action name="login" class="loginAction">这里的class指定spring配置文件中的bean的id,则不会出现loginService自动注入问题,而是根据<bean id="loginAction" class="org.xxxxx.action.LoginAction"></bean>有没有指定<property name="loginService" ref="loginService"/>来决定,有<property name="loginService" ref="loginService"/>的指定,则实例化Action类时,会一并将loginService实例注入,没有配置property,loginService则为空

 

 

分享到:
评论
3 楼 sessionsong 2013-09-12  
做项目的时候,也发现了这个问题,但不知道是什么原因,mark一下!
2 楼 SIAS606 2012-02-29  
gogole_09 写道
引用

<action name="login" class="org.xxxxx.action.LoginAction">
   <result name="success">/result.jsp</result>
   <result name="error">/login.jsp</result>
  </action>

注意看以上两个红线部分,在struts.xml中action指定的class像上面这种方式指定全类路径名的话,这时,不论spring配置文件中的<bean id="loginAction" class="org.xxxxx.action.LoginAction"></bean>有没有指定<property name="loginService" ref="loginService"/>,只要有<bean id="loginService" .../>存在,并且这个ID的名字与Action中成员bean的名字一致,当实例化Action类时,会一并将loginService的实例注入


请假一下,为什么会导致这种情况的出现?

同问:这个现象原理是什么
1 楼 gogole_09 2010-07-02  
引用

<action name="login" class="org.xxxxx.action.LoginAction">
   <result name="success">/result.jsp</result>
   <result name="error">/login.jsp</result>
  </action>

注意看以上两个红线部分,在struts.xml中action指定的class像上面这种方式指定全类路径名的话,这时,不论spring配置文件中的<bean id="loginAction" class="org.xxxxx.action.LoginAction"></bean>有没有指定<property name="loginService" ref="loginService"/>,只要有<bean id="loginService" .../>存在,并且这个ID的名字与Action中成员bean的名字一致,当实例化Action类时,会一并将loginService的实例注入


请假一下,为什么会导致这种情况的出现?

相关推荐

    struts2与spring2的整合

    4. **Spring插件**:在Struts2中使用Spring插件(struts2-spring-plugin),这个插件能够帮助Struts2与Spring进行交互,自动将Action类实例化并注入依赖。 5. **Action类**:Action类需要实现Spring的`org.spring...

    struts2 spring hibernate集成

    **Struts2与Spring的集成** 主要是通过Spring插件实现,这使得Action类可以作为Spring的bean管理,实现依赖注入。这样,Action类可以直接注入服务层(Service)和DAO(数据访问对象)层的bean,简化了代码结构,增强...

    Struts2与Spring2框架整合实例

    在整合中,我们可以通过Spring配置文件来声明Struts2 Action类的bean,并指定其依赖的服务类。 2. **Spring的Action类管理**:在整合后,Struts2的Action类不再直接创建服务类的实例,而是由Spring容器提供。这样...

    struts2入门教程及struts2集成spring

    在Java Web开发中,将Struts2与Spring进行集成,可以充分利用两者的优势,实现更好的业务逻辑管理和控制流分离。集成过程主要包括以下几个步骤: 1. **引入依赖**:首先,在项目中添加Struts2和Spring的相关库,...

    struts2,spring集成 实例

    集成Struts2和Spring主要是为了将Spring的依赖注入特性引入到Struts2的Action中,这样Action类可以直接依赖于Spring管理的Bean,无需在Action类中进行实例化。以下是集成的几个关键步骤: 1. **配置Spring**:首先...

    struts2-spring-plugin-2.2.1.jar

    **Struts2与Spring的集成** 在没有Struts2-Spring-Plugin的情况下,要在Struts2应用中使用Spring,需要手动配置Action类与Spring Bean之间的关联。而有了这个插件,配置过程变得更加简单。以下是Struts2-Spring-...

    struts2-spring-plugin-2.3.4.jar

    Struts2-Spring-Plugin-2.3.4.jar 是一个专门为 Struts 2 框架和 Spring 框架整合而设计的插件,主要用于处理 Struts 2 和 Spring 之间的集成问题。在Java Web开发中,这两个框架经常一起使用,Spring 提供了依赖...

    Struts2+Spring框架集成实例

    通常,我们会在Spring中定义Bean,然后在Struts2的Action类中通过@Autowired注解注入这些Bean,从而实现业务逻辑的执行。另外,Struts2的动作类也可以通过Spring管理,这样可以利用Spring的生命周期管理、事务管理等...

    struts2+spring练习

    4. **Struts2与Spring集成**:为了结合这两个框架的优点,我们需要配置Struts2的Spring插件。这将使Struts2能够从Spring容器中获取Action实例,实现Action的依赖注入。配置通常包括修改`struts.xml`中的`&lt;package&gt;`...

    struts+spring集成

    3. **配置集成**:在Struts2的配置文件中,我们需要声明一个Struts2-Spring插件,它允许Struts2与Spring进行通信。同时,在Spring的配置文件中,需要定义Action类的bean,并配置好相关属性和依赖。 4. **AOP结合**...

    Struts2与Spring集成所需Jar包

    3. **Struts2 Spring插件**:Struts2提供了专门的Spring插件,如`struts2-spring-plugin.jar`,用于在Struts2中管理和注入Spring的Bean。这个插件使得我们可以在Struts2的Action类中直接使用Spring管理的Bean,无需...

    Struts2与Spring整合的demo

    - `StrutsSpring`可能包含一个简单的整合示例,包括Struts2的配置文件、Spring的配置文件以及相关的Action类和业务接口。 - 示例可能会展示如何配置Action类,如何在Spring中定义bean,以及如何在Struts2中引用...

    Struts2 Spring2.5集成:系统登陆demo--带lib可直接运行

    3. **Action配置**:在Struts2的配置文件(struts.xml)中,我们需要声明Action类,并指定它与Spring的Bean ID关联。这样,当请求到达时,Struts2会通过Spring获取到Action实例。 4. **Spring配置**:在Spring的配置...

    整合struts2和spring

    5. **Action与Spring的交互**:在Action类中,可以直接通过@Autowired注入的bean来调用业务服务方法。这种方式简化了Action类的构造函数,避免了手动设置依赖。 6. **拦截器配置**:Struts2允许使用拦截器来增强...

    搭建SSH框架需要引入的Struts2包(log4j,spring-web,struts2-spring-plugin)

    对于Struts2和Spring的配置,我们需要在`struts.xml`和`spring-context.xml`文件中进行相应的设置,例如定义Action类、配置Spring Bean以及指定Struts2与Spring的整合方式。同时,确保web.xml文件中配置了...

    struts spring集成【下】

    这个插件允许我们在Struts2的配置中直接引用Spring管理的bean,避免了在Action类中手动创建服务实例。 3. **Action类的配置**:在Struts2的配置文件(通常是`struts.xml`或`struts-plugin.xml`)中,我们不再直接...

    ssh集成jar包,支持spring集成Hibernate,spring集成struts2等

    - Struts2与Hibernate集成,通常在Action中通过SessionFactory获取Session,执行数据库操作,但这种方式不推荐,因为容易导致事务管理复杂。推荐使用Spring的Hibernate支持来整合。 5. **jar包的使用**: - 在SSH...

    struts2-spring-plugin-2.2.3.jar

    总的来说,Struts2-Spring-Plugin-2.2.3.jar是Struts2与Spring集成的重要工具,它简化了两者之间的结合,使得开发者可以充分利用Spring的DI和AOP特性,同时利用Struts2的MVC优势,提高Java Web应用的开发效率和质量...

    SSH\\others\\struts2-spring-plugin-2.2.1.jar

    除了Action类,Struts2 Spring Plugin还允许我们在拦截器、结果类型和其他Struts2组件中使用Spring注入。这大大增强了Struts2的应用能力,简化了复杂应用的构建过程。 压缩包中的其他文件如"msbase.jar"、...

    struts2-spring-plugin-2.0.11.1.jar

    Struts2-Spring-Plugin-2.0.11.1.jar 是一个专门为Apache Struts2框架设计的插件,其主要目的是实现Struts2与Spring框架的集成。这个插件使得开发者能够在Struts2应用中无缝地使用Spring进行依赖注入(Dependency ...

Global site tag (gtag.js) - Google Analytics