首页 > 其他分享 >Spring的PropertyPlaceholderConfigurer应用

Spring的PropertyPlaceholderConfigurer应用

时间:2023-05-15 19:32:47浏览次数:37  
标签:文件 jdbc 配置文件 Spring 应用 PropertyPlaceholderConfigurer properties 属性


1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是BeanFactoryPostProcessor接口的一个实现。PropertyPlaceholderConfigurer可以将上下文(配置文件)中的属性值放在另一个单独的标准java Properties文件中去。在XML文件中用${key}替换指定的properties文件中的值。这样的话,只需要对properties文件进行修改,而不用对xml配置文件进行修改。 

2.在Spring中,使用PropertyPlaceholderConfigurer可以在XML配置文件中加入外部属性文件,当然也可以指定外部文件的编码,如: 



<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
   <property name="location"> 
     <value>conf/sqlmap/jdbc.properties</value> 
   </property> 
    <property name="fileEncoding"> 
      <value>UTF-8</value> 
    </property> 
</bean>



 

当然也可以引入多个属性文件,如: 


<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
  <property name="locations"> 
   <list> 
    <value>/WEB-INF/mail.properties</value>  
    <value>classpath: conf/sqlmap/jdbc.properties</value>//注意这两种value值的写法 
   </list> 
  </property> 
</bean>


 3.譬如,jdbc.properties的内容为: 

jdbc.driverClassName=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://localhost/mysqldb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=round; 
jdbc.username=root 
jdbc.password=123456

 4.那么在spring配置文件中,我们就可以这样写: 



<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
  <property name="locations"> 
   <list> 
    <value>classpath: conf/sqlmap/jdbc.properties </value> 
   </list> 
  </property> 
</bean> 
<bean id="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"> 
  <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>


 5.这样,一个简单的数据源就设置完毕了。可以看出:PropertyPlaceholderConfigurer起的作用就是将占位符指向的数据库配置信息放在bean中定义的工具。 

6.查看源代码,可以发现,locations属性定义在PropertyPlaceholderConfigurer的祖父类PropertiesLoaderSupport中,而location只有 setter方法。类似于这样的配置,在spring的源程序中很常见的。 

PropertyPlaceholderConfigurer如果在指定的Properties文件中找不到你想使用的属性,它还会在Java的System类属性中查找。 

我们可以通过System.setProperty(key, value)或者java中通过-Dnamevalue来给Spring配置文件传递参数。

标签:文件,jdbc,配置文件,Spring,应用,PropertyPlaceholderConfigurer,properties,属性
From: https://blog.51cto.com/u_6687237/6280711

相关文章

  • SpringBoot发布https服务
    一、生成SSL证书 1、进入本地jdk的路径cdD:\Program\jdk1.8.0_77\jre\lib\securitycmd窗口生成证书HSoftTiger.keystore到D盘keytool-genkey-aliastigerCompany-keyalgRSA-keysize1024-keypasstigerpass-validity3650-keystoreD:\HSoftTiger.keystore-storep......
  • Spring源码:Bean生命周期(四)
    前言在之前的文章中,我们介绍了Bean的核心概念、Bean定义的解析过程以及Bean创建的准备工作。在今天的文章中,我们将深入探讨Bean的创建过程,并主要讲解createBean方法的实现。在这个过程中,我们将了解Bean的实例化、属性注入、初始化和销毁等步骤,以及各个步骤的具体实现......
  • Logstash关于日志清洗记录学习及应用
    logstash日志清洗:日志清洗任务,给了我乱七八糟资料之后看的一脸懵,最后决定自己动手整理整理这样有头绪点,记录一下自己学习过程。其中涉及到一些ip内容的我都改为ip,其他保持一致,欢迎大家一起讨论,我也是刚开始学习这个,如有写的不对请多指教。一、学习阶段1、首先理解logstash中各个......
  • Tomcat10依赖问题 jakarta.servlet-api 6.0.0 spring6.x.x
    org.springframework.web.servlet.DispatcherServlet’isnotassignabletojavax.servlet.Servlet1、pom.xml配置<dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifact......
  • ChatGPT Plugin开发setup - Java(Spring Boot) Python(fastapi)
    记录一下快速模板,整体很简单,如果不接auth,只需要以下:提供一个/.well-known/ai-plugin.json接口,返回openAI所需要的格式提供openAPI规范的文档CORS设置其他的和普通的web开发类似.本地开发就直接使用localhost即可,前几天官方localhost无法联通,最近应该修复了.要让GPT......
  • Git应用笔记
    1.初始化本地代码仓库gitinitClone代码gitclone提交代码gitadd.gitcommit-m"commitcomments"gitpushoriginbranchname更新本地代码 gitpullgitupdate代码强制回退#将代码克隆到本地gitclonessh://git@……#reset到指定的回退点(commit的......
  • 使用Eclipse JEE+Mtj+Nokia S60 V3SDK开发J2ME应用的环境搭建
    使用EclipseJEE+Mtj+NokiaS60V3SDK开发J2ME应用的环境搭建2010-04-0716:53   在NokiaS60V3下进行J2ME应用程序开发,需要搭建Nokia官方提供的SDK环境。一般的J2ME应用开发使用Sun公司的J2MESDK就可以了,如果需要开发基于NokiaS60手机应用,就需要Noki......
  • SpringBoot 文件上传到指定文件夹
    1、在application.yml文件中设置存储文件夹地址upload:path:E:\upload\2、配置映射路径@ConfigurationpublicclassWebMvcConfigimplementsWebMvcConfigurer{@OverridepublicvoidaddResourceHandlers(ResourceHandlerRegistryregistry){//其......
  • SpringBoot 使用 Sa-Token 完成注解鉴权功能
    注解鉴权——优雅的将鉴权与业务代码分离。本篇我们将介绍在Sa-Token中如何通过注解完成权限校验。Sa-Token是一个轻量级java权限认证框架,主要解决登录认证、权限认证、单点登录、OAuth2、微服务网关鉴权等一系列权限相关问题。Gitee开源地址:https://gitee.com/dromar......
  • 宝兰德应用服务器软件与华为云GaussDB完成兼容互认证
    摘要:北京宝兰德软件股份有限公司携手华为云完成宝兰德应用服务器软件9.5与GaussDB数据库兼容性测试,并获得华为云授予的技术认证书。本文分享自华为云社区《宝兰德应用服务器软件与华为云GaussDB完成兼容互认证》,作者:GaussDB数据库。近日,北京宝兰德软件股份有限公司(简称:宝兰德)携......