背景

之前做项目配数据源信息,一般是把用户名,密码这些都放在一个properties文件中。最近做了个项目是把用户名密码配置在了web容器(tomcat)启动选项里,然后通过${key}注入到properties文件中。

由此产生很多疑问

容器的启动选项是怎么注入到properties文件中的。

容器的启动选项设置的属性的使用范围。

properties中配置的属性是怎么注入到spring配置文件中的。

properties中配置的属性的使用范围。

个人理解 (有问题请指教)

在网上找了很久,没有找到说清楚VM options是什么的相关帖子。我就自己理解一下吧。

写了一个demo,最后发现在VM options中配置的参数,可以通过${}占位符在项目的任何位置注入,比如spring的xml配置文件,properties文件以及通过@Value注入java文件中。

可以理解为容器的启动选项配置的属性是整个web容器的全局变量,可以在容器中的所有项目,所有项目中的所有文件中通过${key}引用到。

关于properties文件

紧接着我顺带深入理解了一下properties文件以及properties中定义的属性在spring中的作用域。

基础操作

首先properties就是一个定义键值对的文件,我们可以通过Properties类加载然后通过getProperty("key")来获取value,参考

通常做法:

但是我们用的最多的是在spring的相关配置中使用properties来收集一些配置属性方便修改。

在spring的xml配置文件中使用

来加载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则获取不到,反之亦然。

总结:

容器的启动选项是怎么注入到properties文件中的。解答:我们只需要配置容器启动选项,其他完全由容器实现和处理。

容器的启动选项设置的属性的使用范围。解答:容器中所有项目,项目中所有文件。

properties中配置的属性是怎么注入到spring配置文件中的。解答:我们只需要引入properties文件,其他由spring实现和处理

properties中配置的属性的使用范围。解答:属性引入的容器

vmoptions默认配置_VM options 以及 properties文件的一些理解相关推荐

  1. spring配置中加载properties文件方法

    首先,遇到一个问题,spring配置中加载properties文件配置如下: <context:property-placeholder ignore-unresolvable="tr ...

  2. vmoptions默认配置_AndroidStudio基本配置

    AndroidStudio基本配置 本文是对Android开发者网站的相关文章总结 1.配置文件 Android Studio 通过 Help 菜单提供对两个配置文件的访问: studio.vmopt ...

  3. spring配置数据源(加载properties文件)

    1.在spring中引入properties配置文件需要引入context的命名空间和真实地址 2.然后加载文件 需要注意的是这是采用的是set注入方式,所以name属性值必须是连接池set方法名去掉 ...

  4. [转载]spring使用PropertyPlaceholderConfigurer加载properties文件处理中文乱码

    在spring中我们常常使用.properties对一些属性进行一个提前配置,spring在读取∗.properties文件时,默认使用的是asci码,这时我们需要对其编码进行转换.当然方法有很多种, ...

  5. 怎么编写properties文件

    在学框架的时候,我们经常会碰到用properties的方式配置常量,那么properties文件怎么创建书写呢, properties是采用key-value(键-值)的方式来保存数据的 注释 在pr ...

  6. 九、装配bean--通过properties文件注入值

    一.建立com.util下建立db.properties文件 name=root driver=com.mysql.jdbc.Driver url=jdbc\:mysql\://localhost\: ...

  7. SpringBoot中.properties文件中配置项显示到页面中文乱码解决

    问题描述: 使用 .properties 文件来进行简单的配置,然后使用 @Value 来获取配置属性: application.properties文件内容如下: server.port=8080 ...

  8. SpringBoot(12)---外部化配置(properties文件配置)

    SpringBoot特性_外部化配置(properties文件配置) SpringBoot允许将配置进行外部化(externalize),这样你就能够在不同的环境下使用相同的代码.你可以使用prope ...

  9. 第二章、application.properties文件的配置

    前面讲到了如何搭建一个简单的springboot应用,是不是特别简单.springboot内置了tomcat,这就大大减少了我们自己配置tomcat所产生的各种各样的配置手续包括所出现的问题.通过ma ...

  10. Spring Boot 配置 jar 包外面的 Spring Properties 文件

    一.概述 Properties 文件是我们可以用来存储项目特定信息的常用方法.理想情况下,我们应该将其保留在 jar 包之外,以便能够根据需要对配置进行更改. 在这个教程中,我们将研究在 Spring ...

最新文章

  1. 图论(二分图构造) ---- 二分图的性质 C. Arpa’s overnight party and Mehrdad’s silent entering
  2. Java8之lambda表达式的总结
  3. 开启mysql慢查询日志,不重启数据库的方法
  4. python PyQt5中文教程☞【第八节】PyQt5控件(II)
  5. Python开发【Part 11】:线程与进程
  6. 如何使用GZip和Jersey压缩Java REST API中的响应
  7. php 精度比较,PHP浮点数精度和比较
  8. php数组去重复数据的小例子
  9. autosar网络管理_Autosar 软件框架
  10. 博客搬家日记--搭建基于Docker的LNMP环境
  11. 2022年认证杯SPSSPRO杯数学建模C题(第二阶段)污水流行病学原理在新冠疫情防控方面的作用求解全过程文档及程序
  12. RAW到底比JPG强在哪里
  13. css3参考手册在线和下载
  14. matlab的比较器模块,simulink中的比较器
  15. 回顾2021几件印象深刻的事
  16. OutputFormat类——Hadoop
  17. 安卓GB28181跨网段语音对讲
  18. 图像编辑系列之(2)基于StyleGAN(3)GAN逆映射(4)人脸 (5)语义生成 | ICCV2021生成对抗GAN梳理汇总...
  19. laravel路由的配置,别名,路由群组
  20. 看机器学习如何还原图像色彩

热门文章

  1. 想进大公司先测你EQ
  2. linux 本地查看服务器图片-2种方式
  3. Redis【有与无】【Lettuce】L4.Redis Sentinel
  4. 8个深度学习/计算机视觉错误,应该如何避免它们
  5. 邮箱有效性验证(是否真实存在可发送)
  6. 牛逼!这个网站可以帮助程序员命名变量和函数!
  7. 百度地图API获取行政区域边界(省、市、区县)
  8. Java实现DOCX文件和DOC文件互转
  9. 理解服务器证书 CASSL
  10. delphi学习笔记(2)-object pascal语言的语句 选择自 xmz2629 的 Blog