`

如何在Spring中实例化非Action类

阅读更多

如何在Spring中实例化非Action类
开发过程中碰到一个问题,无论如何都不能在非Action中调用通过Spring实例化的类,在小强的帮助下解决了这个问题。:)
 
案例: 一个Tag需要调用一个鉴权Service,但是Tag不是Action,没有在Spring中注册,虽然service通过Application-Context.xml中初始化,但是Tag是不能通过Class.forname("Service")来初始化Service。
 
解决方法:通过增加一个辅助类(appContextUtil)来实例化spring中的对象.
1。增加类
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.beans.BeansException; 
public class AppContextUtil implements ApplicationContextAware
{
    static ApplicationContext applicationContext;
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
    {
        this.applicationContext= applicationContext;
    }
    public static ApplicationContext getApplicationContext()
    {
        return applicationContext;
    }
}

2。调用方法

在Tag的获取Service的方法如下: return (Service)(AppContextUtil.getApplicationContext().getBean("Service"));

分享到:
评论
3 楼 fireinwind 2010-11-16  
我也没试过,这是我转的。出处不详。
return (Service)(AppContextUtil.getApplicationContext().getBean("Service"));

把后面的 "Service" 改成"service" 试试。

第一个字母小写



实在不行就这样调用。
ApplicationContext context = new FileSystemXmlApplicationContext("/WebRoot/WEB-INF/applicationContext.xml");
ServiceImpl  wcs = (ServiceImpl) context.getBean("serviceImpl");

if(wcs != null){

}
2 楼 zhaoshun0417 2010-11-01  
一样的得NULL值。。求楼主解释
1 楼 rewop998 2010-09-27  
AppContextUtil.getApplicationContext()好象返回null,是不是要在配置文件里配置一下?

相关推荐

    spring in action的jar包

    这个"spring in action的jar包"很可能是书中提到的一些必要的库文件,用于配合书中的实例代码运行。这些jar包是Spring框架的组成部分,包括了Spring的核心模块和其他可能依赖的第三方库。 在Spring框架中,主要包含...

    Struts2+Spring演示实例源代码

    - **Action配置**:在struts.xml中声明Spring管理的Action,不再需要在Action类上添加任何Struts注解。 - **事务管理**:利用Spring的AOP功能,可以在Action执行前后自动开启和提交事务,实现数据一致性。 4. **...

    Spring in Action 使用Maven 构建Spring 工程

    Spring容器会根据配置自动实例化bean,并负责它们的生命周期管理,包括初始化、依赖注入和销毁。 在Spring工程中,我们常常会使用Maven的生命周期(Lifecycle)和插件(Plugins)。例如,`mvn compile`命令会编译源...

    一个Action对应多个类实例。

    在Struts框架中,"一个Action对应多个类实例"的概念是设计模式的一种体现,它涉及到MVC(模型-视图-控制器)架构的实现。Struts是一个基于Java Servlet和JSP的开源框架,用于构建企业级Web应用程序。在这个框架中,...

    Spring Roo In Action

    该部分内容可能详细介绍了如何在Spring Roo环境中定义实体类,并使用JPA注解或XML配置文件来管理实体与数据库之间的关系。 在Web开发部分,Spring Roo可能讲述了如何快速创建和部署Web应用程序,利用Spring Roo提供...

    一个Spring的入门实例;一个Struts的入门实例

    Spring 和 Struts 是两个在Java Web开发中广泛使用的框架,它们各自解决了一些核心问题并促进了应用程序的构建。这里我们将深入探讨这两个框架的基本概念、工作原理以及如何创建一个入门实例。 **Spring 框架** ...

    Struts+Spring开发实例

    2. **配置Struts**:在struts-config.xml中,配置Action的类为Spring的代理类(org.springframework.web.struts.ActionProxyFactoryBean),这样Struts会通过Spring来实例化Action。 3. **Action中的Service注入**:...

    spring管理struts的action的代码

    为了实现Spring对Struts Action的管理,我们需要在Web应用中配置Spring容器,并通过Spring来创建和管理Struts中的Action实例。这样做的好处在于,Action实例的生命周期和依赖关系都可以由Spring容器来管理,提高了...

    spring实例(经典推荐)SpringMVCDemo.rar

    本实例“SpringMVCDemo”深入探讨了Spring MVC模式在实际项目中的应用,旨在帮助开发者更好地理解和掌握Spring的核心概念与技术。SpringMVCDemo是一个典型的Struts、Spring和Hibernate集成的项目,它充分展示了这三...

    《spring in action》中文第三版

    - **初始化前**:在Bean被实例化后,但尚未设置任何属性之前。 - **初始化中**:Bean的所有属性已经被设置,此时可以执行自定义的初始化方法。 - **初始化后**:在所有依赖关系被注入之后,可以执行自定义的后处理...

    struts2,spring集成 实例

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

    Struts+spring简单实例

    这样,Action的实例化和生命周期管理由Spring负责,开发者只需要关注业务逻辑的实现。 5. **Service层与DAO层**:Spring提供了对数据访问对象(DAO)的支持,可以方便地创建和管理DAO。Service层作为业务逻辑的载体...

    struts+spring ioc 实例

    在这个实例中,我们将看到如何将Struts的动作(Action)类与Spring的IoC容器集成,以便通过设值注入(Setter Injection)来管理依赖。设值注入是Spring的一种注入方式,它通过调用对象的setter方法来设置依赖的对象...

    struts整合spring开发实例

    3. **编写Action类**:Action类不再需要在构造函数中初始化依赖,而是通过@Autowired注解让Spring自动注入。 4. **创建登录业务逻辑**:在Spring中定义一个服务类,处理用户登录的相关业务,如验证用户名和密码。 ...

    Struts+hibernate+spring学习实例

    在Spring中,我们可以使用Spring的ApplicationContext来管理Bean,包括Struts的Action和Hibernate的SessionFactory等。 在"投票"这个实例中,我们可能涉及到以下几个知识点: 1. Struts的Action类:创建一个Action...

    spring roo in action

    这本书不仅提供了理论知识,还包含了丰富的实例和实践,帮助开发者在实际项目中更好地应用Spring Roo。 由于本书的版权信息部分包含了一些OCR扫描出错的文字,我们可以推测该书籍的版权归Manning Publications Co....

    spring in action & 精通spring

    通过阅读《Spring in Action》和《精通Spring》,开发者不仅可以掌握Spring框架的基础用法,还能深入理解其设计理念,从而在实际项目中更好地利用Spring提高开发效率和代码质量。这两本书覆盖了大量的实例和最佳实践...

    Flex4 spring整合实例

    2. **创建Flex客户端**:在Flex项目中,使用Flex Builder或类似工具创建MXML组件和ActionScript类,这些组件将与Spring服务代理进行交互。Flex应用需要配置一个Remoting Destination,指向Spring服务代理。 3. **...

    struts2+spring实例

    在这个"struts2+spring实例"中,我们将会探讨如何将这两个框架集成在一起,以创建一个简单的Hello World应用程序。这个入门例子旨在帮助开发者快速理解如何配置和使用这两个框架协同工作。 首先,我们需要了解...

Global site tag (gtag.js) - Google Analytics