- 浏览: 565084 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
a1641693970:
还不错,学习了
BeanUtils使用总结(二)LazyDynaBean -
zjfshowtime:
很好的办法,学习了。
ORA-28001: the password has expired -
ya654277yo:
哦,多谢分享
Apache整合Tomcat后get方式提交中文乱码问题解决 -
foolkeeper:
nice !!
jvm内存参数设定 -
tracy821:
谢谢了,找了好久才找到
关于Spring 声明式事务处理时,throws exception不回滚的问题
传统通过读取资源文件方式:
1、Properties
Properties pro = new Properties ();
加载资源文件分如下几种:
(1)、pro.load(new FileInputStream("config.properties"));读取当前目录的config.properties文件
(2)、props.load(getClass.getResourceAsStream("config.properties")); 读取当前类所在位置一起的config.properties文件
(3)、props.load(getClass.getResourceAsStream("/config.properties")); 读取ClassPath的根的config.properties文件,注意ClassPath如果是多个路径或者jar文件的,只要在任意一个路径目录下或者jar文件里的根下都可以,如果存在于多个路径下的话,按照ClassPath中的先后顺序,使用先找到的,其余忽略
备注:加载XML方式类似,只是调用loadFromXML(in);
获取属性值的方式:
String |
getProperty(String key) 用指定的键在此属性列表中搜索属性。 |
String |
getProperty(String key, String defaultValue) 用指定的键在属性列表中搜索属性。 |
2、ResourceBundle
加载资源文件的方式
(1)ResourceBundle bundle = ResourceBundle.getBundle("config");
(2)ResourceBundle res = ResourceBundle.getBundle("config.properties");
获取属性值的方式:
abstract Enumeration<String> |
getKeys() 返回键的枚举。 |
Object |
getObject(String key) 从此资源包或它的某个父包中获取给定值的对象。 |
String |
getString(String key) 从此资源包或它的某个父包中获取给定值的字符串。 |
String[] |
getStringArray(String key) 从此资源包或它的某个父包中获取给定值的字符串数组。 |
使用commons-configuration.jar 中的Configuration读取资源文件
1、Properties
比如,有如下的配置信息:
speed=23.332 names=Bob,Gautam,Jarret,Stefan correct=false |
可以像这样来访问他们:
Configuration config = new PropertiesConfiguration(getClass() .getResource("/resources/config.properties")); float speed = config.getFloat("speed"); List names = config.getList("names"); boolean correct = config.getBoolean("correct"); |
传递给PropertiesConfiguration构建函数的参数可以是文件名、可以访问到文件的URL、以及文件本身(File对象)。当然,Properties类也可以完成同样的事情,但只支持返回String类型的值。
2、XML
希望使用XML格式的配置文件来配置应用程序。
解决方案:
Configuration config = new XMLConfiguration("resources/config.xml"); List criterias = config.getList("start-criteria.criteria"); String criteria = config.getString("start-criteria.criteria(0)"); String type = config.getString("start-criteria.criteria(0)[@type]");//自己替换[] int horsepower = config.getInt("horsepower"); |
使用XMLConfiguration类可以加载并访问XML格式的配置文件,访问配置信息使用的是XPath格式 (XPath请参数相应的XML文档)。
传递给XMLConfiguration构建函数的参数可以是文件名、可以访问到文件的URL、以及文件本身(File对象)。
3、组合配置
有时候应用程序使用一种多层结构的配置方式,即上一层的配置可以被下一层选择性地覆盖。
解决方案:
configuration.xml
<?xml version="1.0" encoding="ISO-8859-1" ?> <configuration> <properties fileName="user.properties" /> <properties fileName="local.properties" /> <properties fileName="global.properties" /> </configuration> |
global.properties
threads.max=50 threads.min=2 timeout=15.52 interactive=true color=red speed=50 name=Default User |
local.properties
# Overrides Global Props threads.max=30 speed=55 |
user.properties
# Overrides Local Props threads.min=1 color=black speed=5000 name=Sean |
ConfigurationFactory factory = new ConfigurationFactory(); factory.setConfigurationURL(CfgTest3.class.getResource("/resources/configuration.xml")); Configuration config = factory.getConfiguration(); // print out properties System.out.println("Timeout: " + config.getFloat("timeout")); System.out.println("Max Threads: " + config.getString("threads.max")); System.out.println("Name: " + config.getString("name")); System.out.println("Speed: " + config.getInt("speed")); |
创建一个声明多个properties配置的configuration.xml文件,并传递给ConfigurationFactory,ConfigurationFactory解析这些properties配置,生成一个包含最终配置信息的Configuration实例,通过这个实例访问到的配置信息,就是被覆盖过的最终版本。
上面实例中的configuration.xml文件由多个<properties/>元素组成,覆盖的顺序由上往下,也就是说user.properties会覆盖local.properties,local.properties会覆盖global.properties。
其他:
configuration.xml文件可以使用如下的元素来声明配置文件:
•<properties/> 用于声明properties格式的配置文件
•<xml/>用于声明xml格式的配置文件
除了可以访问properties格式和xml格式的配置文件以外,Commons Configuration包还定义了JNDIConfiguration类来访问JNDI树格式的配置信息。
发表评论
-
BCD Conversion in java
2016-03-31 23:39 1777/** * Copyright 2010 Firat ... -
在java代码中获取JVM参数
2014-04-08 11:16 14184近日关注性能调优,关注JMX,发现java.lang.man ... -
GC日志分析配置与工具
2013-05-08 11:32 1303-verbose:gc(打印GC日志) -Xloggc:( ... -
java 实现HTTP PROXY
2012-12-06 17:21 7520日常应用中使用过很多次代理,主要停留在配置级别。 近期无意看 ... -
运行时获取方法调用堆栈信息(java)
2012-09-14 10:53 9638前几日系统流程回调时,一个方法莫名其妙被调用,无法定位调用点。 ... -
EL表达式在tomcat7.0下的new关键字不能使用
2012-08-24 17:25 4003最近生产系统部署个小应用,服务器选型tomcat7.0,一直运 ... -
xfire设置连接超时问题
2012-08-01 17:25 5093近期使用xfire作为客户端访问WS,结果因为目标主机假死 ... -
将多个对象写到一个文件
2012-07-20 17:08 1175来看一段ObjectOutputStream构造方法的源代码 ... -
多线程学习笔记:synchronized
2011-12-15 17:32 804Java语言的关键字,当它 ... -
(转)使用 Eclipse Memory Analyzer 检测内存泄漏问题
2011-12-14 18:10 1086本文是关于在开发 Talend RCP 过程中碰 ... -
多线程学习笔记:thread 线程中的sleep()、wait()、yield()、join()
2011-12-14 17:46 12401.sleep()方法 在指定时间内让当前正在执行的线程暂 ... -
jconsole监控JVM
2011-12-12 17:46 1519本地监控: Jconsole [processed] ... -
Java 6 JVM参数选项大全(中文版)
2011-11-03 15:19 984本文 是基于最新的SUN官方 文档Java SE 6 ... -
Java实现远程屏幕监视
2011-10-19 17:40 690Robot robot = new Robot(); / ... -
java线程池 常用方法
2011-09-24 22:52 1342在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于 ... -
JAVA 调用Web Service的方法
2011-08-15 10:28 11121.使用HttpClient 用到的jar文件:comm ... -
JVM监控工具--jvmstat
2011-08-02 15:42 1223首先就是下载这个工具链接:http://java.sun.co ... -
java性能优化
2011-07-18 15:19 1067一、避免在循环条件中 ... -
jvm内存参数设定
2011-07-17 20:30 1314在开发java应用时经常出 ... -
怎样解决Java内存泄漏
2011-07-15 11:38 1415解决Java 内存泄漏 Java内存泄漏是每个 ...
相关推荐
主要介绍了JAVA中的Configuration类详解,具有一定借鉴价值,需要的朋友可以参考下
NULL 博文链接:https://shihuan830619.iteye.com/blog/1160868
从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类...
@Configuration@Bean@RestController@Autowired@GetMapping等方法写的,具体实现的功能就是新建几个.yml和.java文件,实现在.yml文件中配置访问路径(输入信息)通过localhost:8080端口实现在网页上输出;...
.NET Framework 2.0 Configuration配置选项安装包
Spring Boot通过扫描依赖关系来使用类路径中可用的库,对于每个pom文件中的"Spring-boot-starter-*"依赖,Spring Booth会执行默认的AutoConfiguration类AutoConfiguration类使用*AutoConfiguration词法模式,...
apache commons 工具包中提供的一个针对配置文件动态修改的工具类
configuration包读取配置文件,配置文件一般常见的有两种:键值对格式,或XML配置文件,读取这类配置文件可以用Commons Configuration包。
@Configuration类不能是最终的。 @Configuration类必须具有可见的无参数构造函数。 @Configuration类的构造函数不得为@Autowired。 嵌套的@Configuration类必须是静态的。 @Bean方法不能是私有的。 @Bean方法...
主要介绍了详解配置类为什么要添加@Configuration注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2.这个程序具体的内容我忘了,只知道使用@Profile@Configuration@RestController@Autowired(设置环境配置类控制类)等方法写的,具体实现的功能就是新建一些.yml和.java以及接口类文件,实现在.yml文件中配置指定要...
VS2013开发的EF实体代码生成项目,只需更改配置文件中的数据库连接字符串,启动项目就可以在web页面选择配置的数据库,选择数据表,右侧直接生成实体代码及实体Configuration映射代码
直接重写 freemarker 的类 src/main/java/freemarker/template/Configuration.java 类,在实例化 Configuration 方法里面默认加入this.setNewBuiltinClassResolver(TemplateClassResolver.SAFER_RESOLVER);
Apache Commons Configuration对properties、xml配置文件的【增删改查】及动态加载小案例。小编也是找了网上很多资源,综合研究了一下。被怪我黑!!!
如果您是在类中间使用ConfigurationManager.AppSettings的那些开发人员之一,那么请停止,请停止。
基于springboot框架实现一些常用的功能
资源分类:Python库 所属语言:Python 资源全名:pyobjc-framework-SystemConfiguration-7.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
主要介绍了@Configuration与@Component作为配置类的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
【Debug跟踪Hadoop3.0.0源码之MapReduce Job提交流程】第一节 Configuration和Job对象的初始化前言Configuration和Job对象的初始化后记跳转 前言 不得不说,在此前我对阅读源码这件事是拒绝的,一方面也知道自己非读...
在网站开发时比较合理的做法就是我们的常用的一些程序做成函数或封闭成类,这样可以重复利用,可以节约开发成本了,下面来给各位介绍常使用的类. 优点: 1.方便快捷, 数据库操作只需调用接口; ...