标签:选项设置 www 自己 范围 xml文件 xml配置 其他 定义 用户名
之前做项目配数据源信息,一般是把用户名,密码这些都放在一个properties文件中。最近做了个项目是把用户名密码配置在了web容器(tomcat)启动选项里,然后通过${key}注入到properties文件中。
由此产生很多疑问
在网上找了很久,没有找到说清楚VM options是什么的相关帖子。我就自己理解一下吧。
写了一个demo,最后发现在VM options中配置的参数,可以通过${}占位符在项目的任何位置注入,比如spring的xml配置文件,properties文件以及通过@Value注入java文件中。
可以理解为容器的启动选项配置的属性是整个web容器的全局变量,可以在容器中的所有项目,所有项目中的所有文件中通过${key}引用到。
紧接着我顺带深入理解了一下properties文件以及properties中定义的属性在spring中的作用域。
基础操作
首先properties就是一个定义键值对的文件,我们可以通过Properties类加载然后通过getProperty("key")来获取value,参考
通常做法:
但是我们用的最多的是在spring的相关配置中使用properties来收集一些配置属性方便修改。
在spring的xml配置文件中使用
<context:property-placeholder location="classpath:service.properties" ignore-unresolvable="true"/>
来加载properties文件,然后在xml中用${key}来注入对应value,或者在java类属性上用@Value(${key})来注入对应value。
于是我又产生了一个疑问:在xml中引入的properties文件的作用域是什么,是当前xml文件?是spring容器?还是整个项目?
写了一个demo测了一下,发现xml中引入的properties的属性是容器级别的。比如springmvc系统中会有springmvc子容器和spring核心父容器两个容器,在springmvc.xml中引入的properties的属性只能在springmvc子容器中的bean以及同级别xml配置文件中获取到,而spring父容器中的bean则获取不到,反之亦然。
总结:
关于 VM options 以及 properties文件的一些理解
标签:选项设置 www 自己 范围 xml文件 xml配置 其他 定义 用户名
原文地址:https://www.cnblogs.com/qingshan-tang/p/12606830.html