前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring学习-第一篇:关于读取配置文件

Spring学习-第一篇:关于读取配置文件

作者头像
haoming1100
发布2019-02-15 16:49:33
6870
发布2019-02-15 16:49:33
举报
文章被收录于专栏:步履前行步履前行

  最近在用Spring大法的框架,便利了我们,但是对于内部完全不知,虽然满足正常业务需求,但是一旦出现问题,解决效率太低,所以准备深入学习一下,准备个一系列,有不对的地方希望大家多多提建议!

  #读取配置,从applicationContext.xml谈起

  spring如果脱离了注解,开发效率肯定下降一大步,但是我们为了学习内部,就慢慢来了。


  开发工具用IDEA,用spring官方初始化模板,建的一个spring boot项目,(项目类型无关紧要,我们要学的是根本,其实是懒),一般Java spring项目都是在WEB-INF目录下,不过这个项目不同,大家可以稍微注意下,resources放配置文件,

public class Monkey {

    private String monkeyName = "MonkeyKing";

    public String toString(){
        return "MonkeyName:" + monkeyName;
    }
}
public class Tiger {

    private String tigerName="TigerKing";

    public String toString(){
        return "TigerName:"+tigerName;
    }
}
public class Zoo {

    private Tiger tiger;
    private Monkey monkey;


    public String toString(){
        return tiger + "\n" + monkey;
    }
}

applicationContext.xml 位于resources目录下

<?xml version="1.0" encoding="UTF-8"?>
<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:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    ">

    <bean id="zoo" class="com.example.Zoo" >
        <property name="tiger" ref="tiger" ></property>
        <property name="monkey" ref="monkey" ></property>
    </bean>
    <bean id="tiger" class="com.example.Tiger" />
    <bean id="monkey" class="com.example.Monkey" />
</beans>

测试类:

public class MainTest {

    /**
     * 不使用注解
     */
    @Test
    public void test(){
        //读取配置文件  
        ApplicationContext ctx =
                new FileSystemXmlApplicationContext("src/main/resources/applicationContext.xml");
        Zoo zoo = (Zoo) ctx.getBean("zoo");
        System.out.println(zoo.toString());
    }
}

  大家注意,我用的是 FileSystemXmlApplicationContext 来加载配置文件

  还可以用  ClassPathXmlApplicationContext

  ApplicationContext ctx =
          new ClassPathXmlApplicationContext("applicationContext.xml");
  注意 FileSystemXmlApplicationContext引用的是具体文件系统的文件路径,而ClassPathXmlApplicationContext
在classpath找到xml文件
  这其中有个关键点:classpath
我们先看下这个路径
  String s[] = System.getProperty("java.class.path").split(";");
        for (String string : s) {
            System.out.println(string);
        }

 可以获取到当前项目工作目录:D:\gitwork\SpringTest\target\classes

所以,可以看到,我们的classpath是在build目录下:

因为我是springboot项目,所以resources目录独立出来了,普通Java项目会在WEB-INFO/classes下。
   @Test
    public void test(){
        //读取配置文件
        ApplicationContext ctx =
                new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        Zoo zoo = (Zoo) ctx.getBean("zoo");
        System.out.println(zoo.toString());


    }

这样 我们就能读取 applicationContext.xml文件了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-05-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档