乐趣区

关于后端:七配置文件参数化

一、什么是配置文件参数化?

配置文件参数化就是把 Spring 配置文件中须要常常批改的字符串信息,再进一步地抽取进去,将这些信息放在一个更小的配置文件中。

1.1 Spring 配置文件中有这些须要常常批改的字符串吗?

存在的,比方连贯数据库的四因素

1.2 为什么要做这个参数化的动作

第一,如果 xml 文件的配置信息过多,不利于查问与批改,比方我搜半天都没找到
第二,运维人员不会 spring,当它须要批改一些参数的时候,不可能要它动 Spring 的配置文件,万一改错了怎么办,同时将这些配置信息写在 properties 文件或 yml 文件中,比拟简洁,可能一眼就看到对应的参数了(如 userName 或 password)

1.3 小结: 将配置文件参数化,最大的益处:有利于保护

二、如何进行配置文件的参数化?

第一步: 新建一个 db.properties 文件以 key=value 的模式,配置好对应的信息,如下

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?userSSL=false
jdbc.username=root
jdbc.password=admin

第二步:在 applicationContext.xml 文件中配置好对应的四因素

首先要引入对应的 context
<context:property-placeholder location="classpath:db.properties"/>

<bean id="conn" class="cn.paul.spring.demo.hellospring.beanFactory.ConnectionBeanFactory">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>
留神: 这里最好加上 jdbc,因为 username 是零碎的参数变量,如果间接是 username
的话会间接读取零碎的用户名的

备注: 其中的符号 ${}位运算符,相似于通过符号外部的名称就能失去 properties 文件中所对应的值

2.1 配置文件参数化开发步骤总结

第一步: 提供一个小配置文件(xxx.properties)
名字: 轻易
搁置的地位: 轻易 (个别都在 resource 包下)
第二步: 将 Spring 的配置文件和小配置文件进行整合
在 applicationcontext.xml 中引入小配置文件的门路,这样 Spring 才晓得你的值来自哪里
<context:property-placeholder location="classpath:db.properties"/>

小插曲: 我的项目通过 maven 编译后,其实 java 文件夹下的文件和 resources 下的文件其实是放在一起的,如果关上 target 文件夹能够清晰地看到:代码 + 配置文件的内容构造,所以咱们回过来看这个配置文件 <context> 标签,咱们会意识到原来这个 classPath 就是这个对应的类的门路下(如图)

第三步: 通过 ${key}获取小配置文件中对应的值,如上图
退出移动版