MyI myi = (MyI) ((WebApplicationContext)(this.getServlet().getServletContext().getAttribute(ContextLoaderPlugIn.SERVLET_CONTEXT_PREFIX))).getBean("myi");
同样可以通过这种方式来获得:
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
UserManageServiceIF userManage = (UserManageServiceIF) ctx.getBean("userManage");
注意:WebApplicationContextUtils这个抽象类含有两个静态方法:getRequiredWebApplicationContext和getWebApplicationContext,它们都作用都是为web应用查找根WebApplicationContext,这个上下文环境典型的方式是通过ContextLoaderListener或者ContextLoaderServlet来加载,它们由web.xml配置的contextConfigLocation参数来获取配置文件位置,并且指定的多个路径用ConfigurableWebApplicationContext.CONFIG_LOCATION_DELIMITERS=",; \t\n"指定的分隔符来分隔,当然也支持通配符,如/WEB-INF/applicationContext-*.xml,它们的不同之处在于前者当没有找到WebApplicationContext时会抛出IllegalStateException这个异常,而后者仅仅是返回null而已。
分享到:
相关推荐
在整合Spring时,我们通常会利用Spring的Action代理来替代Struts2默认的Action实例化方式,这样可以将Action的创建和依赖注入交给Spring容器来管理。具体实现包括在Struts配置文件中声明Spring插件,并在Spring的...
另一种整合方式是通过继承Spring的ActionSupport类,这使得开发者能够显式地使用getWebApplicationContext()方法获取Spring管理的bean。这种方式更适用于那些需要深度集成Spring特性的场景,比如AOP或更复杂的依赖...
在示例项目 `spring_struts_teranen` 中,开发者可能已经提供了一个简单的整合案例,包括配置文件、Action 类、JSP 视图以及必要的测试。初学者可以通过阅读代码、运行示例和对比不同部分来了解整合的细节。这个过程...
- 在使用Struts2-Spring插件时,注意Action类的生命周期是由Spring控制,而非Struts2。 整合Spring和Struts2是一个常见的Java Web开发实践,熟练掌握这一技能能够提高开发效率,提升应用的可维护性和扩展性。在实际...
5. **Action类的修改**:由于我们使用了Spring管理Bean,所以Action类不再需要依赖注入的构造函数,而是通过setter方法来获取依赖。例如: ```java public class YourAction { private UserService userService; ...
这种方式使得 Spring 容器能够在 Struts 初始化时加载,从而管理应用中的所有bean。 2. **使用 ContextLoaderListener 监听器** 另一种启动 Spring 容器的方法是在 `web.xml` 中配置 `ContextLoaderListener` ...
2. **Spring MVC与Struts2的集成**:虽然两者都有MVC模式,但在整合时,通常会使用Struts2来处理请求的路由和响应,而Spring MVC则处理更复杂的视图解析和数据绑定。 3. **Spring事务管理**:Spring提供了强大的...
具体实现方法是让自定义的Action继承自`org.springframework.web.struts.ActionSupport`类,这样就可以在Action中使用Spring的依赖注入和其他特性了。 **示例代码**: ```java public class LoginAction extends ...
通过这种方式,当Struts2需要实例化Action时,会从Spring容器中查找对应的bean,这样就实现了Action和其依赖的解耦,使得代码更易于测试和维护。 总的来说,Struts2与Spring的整合提供了更好的组件管理和控制反转...
当使用Spring整合时,Action类通常不再直接依赖于Service,而是通过@Autowired注解从Spring容器中注入Service。例如: ```java @Controller public class MyAction { @Autowired private MyService myService; ...
在`struts.xml`文件中,我们需要指定使用Spring作为对象工厂,这允许Struts2从Spring容器中获取Action实例。添加以下关键代码: ```xml <constant name="struts.objectFactory" value="spring" /> ...
- **配置Struts**:在Struts的配置文件中,定义Action配置,设置Spring管理的Bean作为Action的实现类。 - **Spring的DispatcherServlet**:Spring的DispatcherServlet作为前端控制器,替代Struts的ActionServlet,...
这样,每次请求时,Struts2会从Spring容器中获取Action实例,而不是使用默认的实例化方式。 4. **Action类的配置**:Action类需要实现Spring的`org.springframework.stereotype.Component`注解,以便Spring能识别并...
整合Spring和Struts 2的主要目的是将Spring的依赖注入和管理能力引入到Struts 2的Action中,以及利用Spring的AOP进行事务管理。整合步骤通常包括以下几个部分: 1. **添加依赖**:在项目中引入Spring和Struts 2的库...
同时,可以使用Spring插件(struts2-spring-plugin)来实现Spring与Struts的集成,这样Action类可以直接从Spring容器获取服务层对象。 **4. 实现业务逻辑** 创建JPA实体类,使用`@Entity`注解标识。接着,创建对应...
在整合两者时,主要目标是让Spring管理Struts的Action实例,这样可以利用Spring的IoC容器来创建和控制Action对象。 首先,关键步骤是使Struts的ActionServlet能够加载Spring的应用程序环境。这可以通过在Struts的...
在整合Spring和Struts时,我们需要配置Spring的ApplicationContext,这通常是一个XML文件,其中定义了bean的声明和它们之间的依赖关系。这些bean可能包括DAO(数据访问对象)、Service层以及Struts的Action类。...
- 将 Struts 的 Action 映射配置改为使用 Spring 管理的 Bean,通常会配置一个 `<action>` 节点,指定对应的 Spring Bean 名称。 - 创建 Spring 的配置文件,定义需要托管的 Bean,包括Action、Service、DAO等,...
在Spring配置文件中,声明Struts Action为Bean,并指定其Class。例如: ```xml <bean id="exampleAction" class="com.example.ExampleAction"> </bean> ``` 这样,Spring会管理Action实例的生命周期,并负责...
在与Spring整合时,MyBatis的SqlSessionFactory可以通过Spring的Bean配置管理,实现事务控制和依赖注入。 Spring框架作为全能型的IoC(Inversion of Control)/DI(Dependency Injection)容器,负责管理和装配应用...