Spring配置文件的几种读取方式

项目路径:https://gitee.com/wuhan1/spring-parent.git 下的spring-01
1.新建spring工程,引入需要依赖的最少jar包,spring-aop,spring-beans,spring-content,spring-core,spring-expression

    <properties>
        <spring.version>5.0.4.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>

    </dependencies>
applicationContext.xml文件
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:jee="http://www.springframework.org/schema/jee"
       xsi:schemaLocation="
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd">

    <bean id="student" class="com.xqc.Student"></bean>


</beans>

Student类

public class Student {
    //学号
    private Integer stuNo;
    //姓名
    private String stuName;

    public Integer getStuNo() {
        return stuNo;
    }

    public void setStuNo(Integer stuNo) {
        this.stuNo = stuNo;
    }

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public Student(Integer stuNo, String stuName) {
        this.stuNo = stuNo;
        this.stuName = stuName;
    }

    public Student() {
    }
}


方式1:

        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        Student student = (Student) context.getBean("student");
        System.out.println(student);

方式2:

BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
        Student student = (Student) beanFactory.getBean("student");
        System.out.println(student);

方法1和方法2是基于classpath解析配置文件

方式3:

  FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext("/spring-01/src/main/resources/applicationContext.xml");
        Student student = (Student) context.getBean("student");
        System.out.println(student);

此方式是已项目为根路径,需要些xml文件在项目中的全路径

方式4:

 String rootPath = System.getProperty("user.dir");
        BeanFactory context = new XmlBeanFactory(new FileSystemResource(rootPath+"/spring-01/src/main/resources/applicationContext.xml"));
        Student student = (Student) context.getBean("student");
        System.out.println(student);

此方式以系统为根路径

方式5:


       <!-- web启动读取applicationContext.xml -->
	  <listener>
	  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	  </listener>
	  <context-param>
	  	<param-name>contextConfigLocation</param-name>
	  	<param-value>classpath:applicationContext.xml</param-value>
	  </context-param>

通过监听器的方式,这种是我最常用的,通常在整合其他框架的时候,就是这样用的。
 

猜你喜欢

转载自blog.csdn.net/dhj199181/article/details/108588912