在java中通常会有变量,但是如果想改变变量的值,老是在程序里面改很麻烦,最方便的就是在配置文件里面改。程序直接引用就可以了。下面我就来分享一下。。。。

先在常量类里面定义

SystemParams.java

public static String COLLECTION_MUSIC_HOUR="collection_music_hour";

配置文件

config.properties

collection_music_hour=14:40

下面就是如何把变量从配置文件里面取值

MyEncryptablePropertyPlaceholderConfigurer.java

package com.chinaGPS.song.util;

import java.util.Map;

import java.util.Properties;

import org.apache.commons.lang.StringUtils;

import org.jasypt.commons.CommonUtils;

import org.jasypt.encryption.StringEncryptor;

import org.jasypt.properties.PropertyValueEncryptionUtils;

import org.jasypt.util.text.TextEncryptor;

import org.springframework.beans.BeansException;

import org.springframework.beans.factory.BeanInitializationException;

import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;

import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

import com.chinaGPS.song.util.constant.SystemParams;

public final class MyEncryptablePropertyPlaceholderConfigurer

private final StringEncryptor stringEncryptor;

private final TextEncryptor textEncryptor;

private Map resolvedProps;//将属性保存起来

public MyEncryptablePropertyPlaceholderConfigurer(

final StringEncryptor stringEncryptor) {

super();

CommonUtils.validateNotNull(stringEncryptor, "Encryptor cannot be null");

this.stringEncryptor = stringEncryptor;

this.textEncryptor = null;

}

public MyEncryptablePropertyPlaceholderConfigurer(final TextEncryptor textEncryptor) {

super();

CommonUtils.validateNotNull(textEncryptor, "Encryptor cannot be null");

this.stringEncryptor = null;

this.textEncryptor = textEncryptor;

}

@Override

protected String convertPropertyValue(final String originalValue) {

if (!PropertyValueEncryptionUtils.isEncryptedValue(originalValue)) {

return originalValue;

}

if (this.stringEncryptor != null) {

return PropertyValueEncryptionUtils.decrypt(originalValue,

this.stringEncryptor);

}

return PropertyValueEncryptionUtils.decrypt(originalValue, this.textEncryptor);

}

@Override

protected String resolveSystemProperty(final String key) {

return convertPropertyValue(super.resolveSystemProperty(key));

}

@Override

protected void processProperties(

ConfigurableListableBeanFactory beanFactoryToProcess,

Properties props) throws BeansException {

super.processProperties(beanFactoryToProcess, props);

tmp=resolvePlaceholder(SystemParams.COLLECTION_MUSIC_HOUR, props);

if(StringUtils.isBlank(tmp)) {

logger.error(SystemParams.COLLECTION_MUSIC_HOUR+"解析出错");

throw new BeanInitializationException(SystemParams.COLLECTION_MUSIC_HOUR+"属性为空");

}

SystemParams.COLLECTION_MUSIC_HOUR  = tmp;

}

最后就是通过spring的注入

class="com.chinaGPS.song.util.MyEncryptablePropertyPlaceholderConfigurer">

///WEB-INF/jdbc/mysql.properties

/WEB-INF/jdbc/config.properties

java 文本变量_如何将一变量作为可配置文件 java相关推荐

  1. MySQL数据库变量_数据库参数_MySQL变量_系统变量_用户变量

    文章目录 MySQL 变量分类 系统变量 查看系统变量 设置系统变量 如何通过配置文件来设置变量值 通过命令行选项来设置变量值 动态设置全局级的系统变量 设置静态的系统变量 设置会话级的系统变量 引用 ...

  2. frame中src怎么设置成一个变量_自动格式化打印变量HMLog介绍

    作者 | mao2020 来源 | 掘金,点击阅读原文查看作者更多文章 前言 在我初学iOS的时候,经常需要NSLog打印用于调试,有时候还需要打印多个变量: NSLog(@"xxxx fr ...

  3. css 变量_如何将CSS变量用于动画

    css 变量 当我们在讨论中提到CSS时,我们通常将其称为愚蠢的语言. 一种声明性语言,缺乏逻辑和洞察力: 但这不是真实的现实. 多年来,开发人员一直渴望标准CSS中的变量,长期以来一直被诸如LESS ...

  4. java 文本编辑器_「java文本编辑器」用Java实现文本编辑器 - seo实验室

    java文本编辑器 源码里有注释:import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; ...

  5. python 分类变量转为哑变量_机器学习笔记——哑变量处理

    在机器学习的特征处理环节,免不了需要用到类别型特征,这类特征进入模型的方式与一般数值型变量有所不同. 通常根据模型的需要,类别型特征需要进行哑变量处理,即按照特征类别进行编码,一般一个类别为k的特征需 ...

  6. java面试题_阿里大厂流出的数百道 Java 经典面试题

    BAT 常问的 Java基础39道常见面试题 1.八种基本数据类型的大小,以及他们的封装类 2.引用数据类型 3.Switch能否用string做参数 4.equals与==的区别 5.自动装箱,常量 ...

  7. java 编写代码_如果您在2016年编写过Java代码-这是您不容错过的趋势

    java 编写代码 2016年最有趣的Java相关主题 关于代码,有很多热门话题,而要跟上所有事情,这是一项全职的工作. 如果您想知道如何从谷壳中分离出小麦,我们已经为您完成了工作. 在下面的文章中, ...

  8. 计算机程序设计工程师技术水平证书 java 考试试卷_关于程序设计工程师技术水平证书(JAVA).doc...

    程序设计工程师技术水平证书(JAVA) 考试大纲 考试性质和目的: 本考试的目的在于促使考生掌握JAVA语言与面向对象程序设计的概念.方法与基本技术.并注重提高考生运用Java语言和面向对象技术解决问 ...

  9. java ui调试_如何使用 IBM i System Debugger 调试 Java 程序

    当在 IBM i 上使用 Java 时,您可以使用 Qshell Interpreter 或者 CL 命令提供的 Java tools,在 Qshell 环境和 IBM i 环境上进行与 Java 开 ...

  10. java循环输入_【图文+视频新手也友好】Java一维数组详细讲解(内含练习题答案+详解彩蛋喔~)...

    [新手友好型视频+图文] 全面讲解Java一维数组(内含带答案和讲解的练习题彩蛋喔) 看完即上手!更有详解版练习题来帮你加深印象~~ 一.视频讲解 一维数组详解https://www.zhihu.co ...

最新文章

  1. error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
  2. 串口IDLE空闲中断+DMA实现接收不定长数据基于stm32cubemx
  3. 第一百九十九节,jQuery EasyUI,Panel(面板)组件
  4. XML学习笔记(二)-- DTD格式规范
  5. ios textview间距_iOS 设置TextView控件内容行间距
  6. jqgrid下treegrid排序问题
  7. Git -- 分支管理简介
  8. sqlite3命令行把.db文件导成.txt时报错及中文乱码
  9. OneNote2007简体中文便携版
  10. 抖音直播带货流量池规则是什么?直播间没人怎么引流?
  11. 【delete用法 与 object(对象)的创建】
  12. Android SDK是什么
  13. 3DMAx Panda Directx Exporter 导出 X插件
  14. 【HTML5 基础】HTML5重要内容
  15. 关于手机的MAC地址
  16. 简单的博客页面客制化 v2
  17. 再次收到魅族公司赠送的一箱子礼物,感谢
  18. 【阿里云】域名解析 Tomcat绑定域名
  19. 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目
  20. 玩转华为数据中心交换机系列 | 配置动态路由接入M-LAG

热门文章

  1. linux软件抗干扰,解决asterisk下使用misdn时被SELinux干扰导致权限不足的问题
  2. Android-解决ViewFlipper与ScrollView滑动响应事件拦截的问题【转】
  3. TCP三次握手连接和TCP四次挥手及大量TIME_WAIT解决方法:
  4. C代码工具--自动生成enum值和名字映射代码
  5. JavaBean与Map相互转换
  6. unity 获取预制体_Unity打包插件AssetsBundleBrowser的使用
  7. Android数据的四种存储方式
  8. storyboard用代码跳转
  9. IIS URL Rewriting 和 ASP.NET routing(下)
  10. el表达式的转义字符。