`

读取Spring配置文件

阅读更多

当时做铂金网校的网站维护,遇到了一个读取Spring配置文件,取的ApplicationContext时,出现了NullPointerException。

 

使用ApplicationContextAware进行读取Spring配置文件取的对象。

具体代码如下:

public class SpringContextUtil implements ApplicationContextAware {

private static ApplicationContext applicationContext; //Spring应用上下文环境

/**
* 实现ApplicationContextAware接口的回调方法,设置上下文环境
* @param applicationContext
* @throws BeansException
*/
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextUtil.applicationContext = applicationContext;
}

/**
* @return ApplicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}

/**
* 获取对象
* @param name
* @return Object 一个以所给名字注册的bean的实例
* @throws BeansException
*/
public static Object getBean(String name) throws BeansException {
return applicationContext.getBean(name);
}

/**
* 获取类型为requiredType的对象
* 如果bean不能被类型转换,相应的异常将会被抛出(BeanNotOfRequiredTypeException)
* @param name bean注册名
* @param requiredType 返回对象类型
* @return Object 返回requiredType类型对象
* @throws BeansException
*/
public static Object getBean(String name, Class requiredType) throws BeansException {
return applicationContext.getBean(name, requiredType);
}

/**
* 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
* @param name
* @return boolean
*/
public static boolean containsBean(String name) {
return applicationContext.containsBean(name);
}

/**
* 判断以给定名字注册的bean定义是一个singleton还是一个prototype。
* 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
* @param name
* @return boolean
* @throws NoSuchBeanDefinitionException
*/
public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
return applicationContext.isSingleton(name);
}

/**
* @param name
* @return Class 注册对象的类型
* @throws NoSuchBeanDefinitionException
*/
public static Class getType(String name) throws NoSuchBeanDefinitionException {
return applicationContext.getType(name);
}

/**
* 如果给定的bean名字在bean定义中有别名,则返回这些别名
* @param name
* @return
* @throws NoSuchBeanDefinitionException
*/
public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
return applicationContext.getAliases(name);
}
}

 

 

完成这个类之后,我们可以在Action中进行调用,当然也可以在jsp中进行调用。

 

//不用再加载springContext.xml文件,因为在web.xml中配置了,在程序中启动是就有了.

 

 

 

StudentManagersm=(StudentManagerImpl)SpringContextUtil.getBean("studentManager");

 

通过这句话来进行使用,读取你自己配置SpringBean就可以了。

 

注意:

一定要在Spring的配置文件applicationContext.xml中加上:
<bean id="SpringContextUtil " class="项目中applicationContext的类路径比如:com.ptlearning.student.SpringContextUtil " singleton="true" />
当对SpringContextUtil 实例时就自动设置applicationContext,以便后来可直接用applicationContext

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    spring读取配置文件

    本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`这两种不同的上下文环境来加载它们。 首先,让我们了解`...

    spring配置文件加密实现

    为了保护这些敏感信息不被非法访问或篡改,我们可以对Spring配置文件进行加密处理。本文将深入探讨如何在Java环境中,利用TE网络技术实现Spring配置文件的加密。 首先,我们需要理解Spring配置文件的基本结构。...

    spring读取jar中的配置文件

    总结起来,Spring提供了多种方式读取JAR内配置文件,包括`@PropertySource`、`@ConfigurationProperties`以及直接使用`Resource`接口。理解这些方法的使用和它们之间的差异对于开发和维护复杂的Spring应用至关重要。...

    Spring Boot多模块配置文件读取

    在Spring Boot应用中,多模块配置文件的读取是一个重要的实践,它有助于提高代码的可维护性和模块化。本文将详细探讨如何在Spring Boot的多模块项目中管理和使用不同的配置文件,以实现低耦合的设计。 首先,了解...

    spring mvc 读取配置文件

    工具方面,IDEA提供了强大的Spring配置文件支持,可以自动完成、错误检查和代码导航。此外,`spring-context-indexer`库可以帮助提升IDE的代码感知能力,使其能更好地理解非XML配置。 在开发过程中,我们经常使用`...

    Spring读取配置文件原理(Spring如何依赖注入的)

    本文将深入探讨Spring如何通过读取配置文件实现依赖注入,并讲解相关源码,帮助理解其工作原理。 在Spring中,配置文件通常为XML格式,如`applicationContext.xml`,它定义了bean的实例化、属性设置、装配关系等。...

    读取spring配置文件的方法(spring读取资源文件)

    通过Spring配置读取资源** 另外,你还可以将资源路径作为bean的属性来配置,Spring会自动将其转换为`Resource`对象。例如: ```xml &lt;!-- 可以直接将一个文件路径赋值给Resource类型的resource属性,spring会根据...

    Spring配置文件集合

    在本压缩包中,我们找到了一系列与Spring相关的配置文件,这些文件在构建JavaWeb应用时起着至关重要的作用。 1. `jdbc.properties`: 这个文件通常用于存储数据库连接的相关信息,如URL、用户名、密码等。它是Spring...

    spring 配置文件 归类

    本篇文章将深入探讨Spring配置文件中的归类,主要包括IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)两个重要概念。 ### 1. IOC (控制反转) IOC是Spring的核心特性,...

    SpringBoot-2.7.6读取配置文件的方式

    本篇文章将详细介绍Spring Boot如何读取配置文件,以及提供一些调试示例代码,帮助你更好地理解和运用。 ### 1. 配置文件位置与优先级 Spring Boot支持多种类型的配置文件,包括`application.properties`和`...

    封装读取配置文件

    在IT领域,特别是软件开发过程中,配置文件的管理与读取是极其...在实际应用中,应根据具体需求选择合适的封装策略,如考虑使用更高级的配置管理库(如Spring的`@Value`注解),进一步优化配置文件的读取和管理流程。

    Spring动态加载配置文件

    接下来,一旦检测到Spring配置文件发生变化,我们需要重新加载配置文件。这可以通过Spring的`ApplicationContext`的`refresh()`方法来实现。`refresh()`会重新初始化Bean工厂,读取新的配置信息,并更新所有Bean的...

    读取配置文件工具类.rar

    本压缩包包含两个工具类,分别用于读取`.yml`和`.properties`格式的配置文件,这两种格式都是Java开发中常见的配置文件类型。 首先,我们来看`.properties`配置文件。这种格式的文件历史较为悠久,它的语法简单,每...

    java读取配置文件

    如果你的项目使用了Spring框架,可以利用Spring的`Resource`接口来读取配置文件,它支持从类路径、文件系统、URL等多种来源加载资源: ```java Resource resource = new ClassPathResource("config.properties");...

    如何加载jar包中的spring配置文件

    在Spring MVC项目中,加载jar包中的Spring配置文件是一个常见的需求,特别是在进行SSM(Spring、Spring MVC、MyBatis)整合时。SSM框架的整合通常涉及到多个配置文件的组织和管理,其中一部分配置可能会被打包到独立...

    idea读取YML配置文件readApplication

    在Spring Boot项目中,配置文件通常使用YAML(YAML Ain't Markup Language)格式,因为其简洁易读的特性。本文将深入讲解如何在Idea中读取YML配置文件,特别是针对刚接触Gradle的开发者。 首先,我们需要了解YML...

    用enum实现单例模式的方法来读取配置文件

    在实际开发中,根据项目需求,还可以考虑使用Spring框架的`@ConfigurationProperties`注解来绑定配置文件,实现更强大的类型安全和属性映射功能。不过,对于简单的配置管理,枚举单例模式已经足够实用。

    spring-demo09-读取properties配置文件内容.zip

    在Spring框架中,读取`properties`配置文件是常见的任务,用于管理应用程序的配置信息,如数据库连接字符串、服务端口、系统环境变量等。本文将深入探讨如何在Spring项目中实现这一功能。 首先,我们需要一个`...

    非注解时自动配置Mybatis spring配置文件和Mybatis自动生成类所需配置文件

    此工具自动生成非注解时Spring整合MyBatis时需要的一些配置文件,对于使用较新版本的spring,可以忽视生成的dao的配置文件,建议采用spring的扫描方式。生成的GeneratorConfigXML修改jdbc驱动位置后可直接用使用...

Global site tag (gtag.js) - Google Analytics