在这篇文章中,我们会利用Spring的@PropertySource和@Value两个注解从配置文件properties中读取值,以及如何从配置文件中的值转换为List对象。
创建Spring配置Class
通过@PropertySource注解将properties配置文件中的值存储到Spring的
Environment中,Environment接口提供方法去读取配置文件中的值,参数是properties文件中定义的key值。上面是读取一个配置文件,如果你想要读取多个配置文件,请看下面代码片段:
在Spring 4版本中,Spring提供了一个新的注解——@PropertySources,从名字就可以猜测到它是为多配置文件而准备的。
另外在Spring 4版本中,@PropertySource允许忽略不存在的配置文件。先看下面的代码片段:
如果missing.properties不存在或找不到,系统则会抛出异常FileNotFoundException。
幸好Spring 4为我们提供了ignoreResourceNotFound属性来忽略找不到的文件
最上面的AppConfigTest的配置代码等于如下的XML配置文件
创建properties配置文件
创建一个简单的服务
首先使用@Component注解声明,接着就是属性字段上的@Value注解,但在这里比较特殊,是通过split()方法,将配置文件中的9leg,spring分割后组成list对象。心细的同学可能注意到了server.host这个key并不存在配置文件中。是的,在这里使用的是默认值,即127.0.0.1,它的格式是这样的。
然后注入了Environment,可以通过getProperty(key)来获取配置文件中的值。
运行main方法,来看下输出结果:
最后要说一点,在main方法中请使用new AnnotationConfigApplicationContext(AppConfigTest.class)来代替new ClassPathXmlApplicationContext(“applicationContext.xml”)或者new FileSystemXmlApplicationContext(“src/main/resources/applicationContext.xml”)。
原创文章转载请注明出处: Spring的@PropertySource和@Value注解例子