`

几种加载Spring的配置文件的方式

阅读更多
package com.liu.test;

public class BeanFile {
 private String beanFile = "多种方式加载Bean的配置文件";

 public void setBeanFile(String beanFile) {
 this.beanFile = beanFile;
 }

 public String getBeanFile() {
 return beanFile;
 }

}

package com.liu.test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.PropertiesBeanDefinitionReader;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.InputStreamResource;
import org.springframework.core.io.Resource;

public class MainBeanFile {
 public static void main(String[] args) {

 // 直接调用HelloBean
 BeanFile bf = new BeanFile();
 System.out.println(bf.getBeanFile());

 /**
 * 利用XmlBeanFactory(Resource resource) 这里Resource必须是xml格式
 * Resource包括:AbstractResource, ClassPathResource, FileSystemResource,
 * InputStreamResource, ServletContextResource, UrlResource
 */

 /*
 * 利用 InputStreamResource(InputStream inputStream) 要将bean.xml放在项目根目录下,目录一定要写完整
 */
 InputStream is = null;
 try {
 is = new FileInputStream("c:/workspace/spring/WebRoot/WEB-INF/InputStreamResource.xml");
 } catch (FileNotFoundException e) {
 e.printStackTrace();
 }
 Resource resource = new InputStreamResource(is);
 sayHello(resource);

 /*
 * 利用 ClassPathResource(String path) 要将bean.xml放在源文件夹(src)目录下
 */
 resource = new ClassPathResource("ClassPathResource.xml");
 sayHello(resource);

 /*
 * 利用 FileSystemResource(String path) 要将bean.xml放在项目根目录下,目录一定要写完整
 * c:/workspace/spring/src/com/liu/test/FileSystemResource.xml
 */
 resource = new FileSystemResource("c:/workspace/spring/src/com/liu/test/FileSystemResource.xml");
 sayHello(resource);

 /*
 * 利用 Properties 要将bean.properties放在类路径--源文件夹(src)目录下
 */
 BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
 PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(reg);
 reader.loadBeanDefinitions(new ClassPathResource("bean.properties"));
 BeanFactory factory = (BeanFactory) reg;
 bf = (BeanFile) factory.getBean("beanFile");
 System.out.println("利用" + bf.getBeanFile() + " 加载 Bean.properties");
 
 /*
 * 利用 ApplicationContext 要将bean.xml放在类路径--源文件夹(src)目录下
 */
 ApplicationContext appContext = new ClassPathXmlApplicationContext(
 "/ApplicationContext.xml");
 bf = (BeanFile) appContext.getBean("beanFile");
 System.out.println("利用" + bf.getBeanFile() + " 加载 Bean.xml");

 }

 public static void sayHello(Resource resource) {
 BeanFactory factory = new XmlBeanFactory(resource);
 BeanFile bf = (BeanFile) factory.getBean("beanFile");
 System.out.println("利用 " + bf.getBeanFile() + " 加载 Bean.xml");
 }


}
 

InputStreamResource.xml
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" 
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean id="beanFile" class="com.liu.test.BeanFile">
        <property name="beanFile">
            <value>InputStreamResource(InputStream inputStream)</value>
        </property>
    </bean>
</beans>

ClassPathResource.xml
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" 
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
 <bean id="beanFile" class="com.liu.test.BeanFile">
  <property name="beanFile">
   <value>ClassPathResource(String path)</value>
  </property>
 </bean>
</beans>


FileSystemResource.xml

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" 
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
 <bean id="beanFile" class="com.liu.test.BeanFile">
  <property name="beanFile">
   <value>FileSystemResource(String path)</value>
  </property>
 </bean>
</beans>


ApplicationContext.xml
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" 
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
 <bean id="beanFile" class="com.liu.test.BeanFile">
  <property name="beanFile">
   <value>ApplicationContext</value>
  </property>
 </bean>
</beans>


bean.properties(Spring也可以使用属性文件来定义配置文件,bean.properties放在源文件夹(src)目录下)
beanFile.class=com.liu.test.BeanFile
beanFile.beanFile=properties


输出结果:(也跟log4j的配置文件有关)
多种方式加载Bean的配置文件
利用 InputStreamResource(InputStream inputStream) 加载 Bean.xml
利用 ClassPathResource(String path) 加载 Bean.xml
利用 FileSystemResource(String path) 加载 Bean.xml
 利用properties 加载 Bean.properties
利用ApplicationContext 加载 Bean.xml

 

分享到:
评论

相关推荐

    spring配置文件加密实现

    总结来说,Spring配置文件加密实现涉及到以下几个关键步骤: 1. 选择并实现加密算法(如AES)。 2. 使用TE网络技术创建透明加密的文件系统。 3. 自定义或调整Spring的启动流程,使其能够通过加密层读取配置文件。 4...

    Spring 加载多个配置文件

    ### Spring 加载多个配置文件详解 #### 一、引言 在现代软件开发中,Spring 框架因其强大的依赖注入(DI)和面向切面编程(AOP)能力而备受青睐。尤其在构建大型应用时,为了提高代码的可读性和可维护性,将系统...

    加载properties配置文件的几种方法

    本文将深入探讨在SSM框架下加载properties配置文件的几种常见方法。 1. **使用Spring的PropertyPlaceholderConfigurer** Spring提供了`PropertyPlaceholderConfigurer`类,可以方便地从.properties文件中读取属性...

    Java 加载配置文件的方式

    本篇文章将详细探讨Java中加载配置文件的几种常见方式。 1. **使用Properties类** Java标准库中的`java.util.Properties`类是处理.properties文件的主要工具。我们可以使用`Properties.load()`方法从InputStream中...

    day38 04-Spring加载配置文件

    Spring加载XML配置文件的过程分为几个步骤: 1. **定位配置文件**:根据提供的路径找到XML配置文件。 2. **解析XML文件**:使用DOM或SAX解析器将XML内容转换为内存中的对象结构。 3. **构建BeanDefinition**:从解析...

    Spring Boot加载配置文件的完整步骤

    Spring Boot加载配置文件的完整步骤 Spring Boot是一种流行的Java框架,用于构建Web应用程序。加载配置文件是Spring Boot应用程序的关键步骤之一。本文将详细介绍Spring Boot加载配置文件的完整步骤,包括配置文件...

    java中的@Value获取不到配置文件的值,也加载不到默认值

    问题 自己开发一个工具类,为第三方应用提供调用接口,但是打包后测试过程...从配置上,完全没有写错的可能,见上方的配置,所以只能从不能获取配置文件内容的几种可能着手了! 变量被static关键字所修饰 我们所需要获

    详解SpringMVC加载配置Properties文件的几种方式

    这是最常用的方式,通过在Spring的配置文件(如`spring.xml`)中引入`context`命名空间,并使用`context:property-placeholder`标签来指定Properties文件的位置。 ```xml &lt;beans xmlns="http://www.spring...

    监听器获取Spring配置文件的方法

    本文将详细介绍如何通过监听器获取Spring配置文件中的bean,以及几种实现方式的优劣分析。 首先,我们需要创建一个监听器来执行这些初始化任务。这里创建了一个名为`InitDataListener`的类,它继承自`...

    Spring的log4j以及配置文件

    这允许我们在不重启应用的情况下,通过修改外部的配置文件来调整日志级别和输出方式。 总的来说,理解和配置好Spring中的Log4j对于开发和维护Spring应用至关重要。通过合理配置`log4j.properties`文件,开发者可以...

    Hibernate 和 Spring的结合配置文件

    同时,`Spring`的配置文件(如`applicationContext.xml`)中会包含`Hibernate`的相关bean定义,如SessionFactory、DataSource、TransactionManager等,实现对`Hibernate`的管理。 接着,`HQL`是`Hibernate`提供的...

    java读取.properties配置文件的几种方法

    下面将详细介绍几种在Java中读取`.properties`配置文件的方法。 1. 使用`java.util.Properties`类 `Properties`类是Java提供的一种内置机制,用于处理属性列表。它继承了`Hashtable`类,提供了加载和保存属性列表...

    Spring+SpringMVC配置加载顺序1

    Spring 和 SpringMVC 的配置加载顺序是理解这两个框架协同工作的重要方面。...理解这些加载顺序和配置方式对于调试和优化Spring应用的性能至关重要,因为它们直接影响到Spring容器的初始化以及请求的处理流程。

    java读取配置文件

    在Java中,我们可以使用多种方法来读取配置文件,下面将详细介绍几种常见的方法。 1. **使用`java.io`流读取** 最基础的方式是使用Java的I/O流来读取文本配置文件(通常是.properties格式)。例如,`java.io....

    spring security 配置文件小结(逐步深化到url级别)

    Spring Security提供了几种内置的决策管理器,如`AffirmativeBased`(多数同意)和`UnanimousBased`(全体一致)。我们可以根据业务需求选择或自定义决策策略。 5. **过滤器链**: Spring Security通过一系列过滤...

    整合Spring与Struts的几种方法

    3. **使用DelegatingActionProxy代理Action**:在`struts-config.xml`中,所有Action的type属性改为`DelegatingActionProxy`,而非具体类名,然后在Spring配置文件中定义对应的bean。这是最灵活的整合方式,因为它...

    Java中spring读取配置文件的几种方法示例

    首先,Spring配置文件通常以XML格式存在,例如`bean_config.xml`。这些文件定义了Bean的结构和它们之间的依赖关系。一个简单的配置文件示例如下: ```xml &lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" ...

    Spring Bean 加载顺序 .

    在实验小例子中,我们可能看到这几种配置方式的组合。Spring会首先读取这些配置源,将其转换为Bean定义。 2. **Bean定义注册**: 解析后的配置会被转化为BeanDefinition对象,包含Bean的类名、依赖、初始化方法等...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件4

    然而,如果确实有需求,可以通过以下几种方式引入XML配置: 1. **启用XML配置** 在Spring Boot项目中,我们可以通过添加`@ImportResource`注解到主配置类(即带有@SpringBootApplication注解的类)上来导入XML配置...

Global site tag (gtag.js) - Google Analytics