JAVA中自定义properties文件介绍

Gradle中的使用

1. 使用gradle.properties

buid.gradle 和 gradle.properties可以项目使用,在同一个项目中,build.gradle可以直接获取其同级或者其父级(父级也要有build.gradle)的properties文件。下面是示例(假设它们是同级):

gradle.properties:

csdn = "www.csdn.com"

build.gradle:

println csdn

2.使用其他的 .properties文件

当properties文件名不为 gradle.properties(例如test.properties) 时或者 不在同级或者父级的目录下时,默认是不会自动引入的,这时候可以使用Java的方式进行引入,网上有很多方式,也可以参考上面官网的API。

可参考:https://blog.csdn.net/Senton/article/details/4083127

这里举两个简单的示例:文件默认在同级目录下面,其他目录的话,把文件名改成路径。

第一种

Properties properties = new Properties()  
properties.load(new FileInputStream("test.properties"))
println properties.getProperty("csdn")

第二种

def config = new ConfigSlurper().parse(new File("test.properties").toURL())

println config.csdn

第二种方式除了加载 properties文件外,还可以加载 groovy 文件 或者 gradle 文件。

Java读取Properties文件的六种方法

1。使用java.util.Properties类的load()方法
示例:

 InputStream in = lnew BufferedInputStream(new FileInputStream(name));
Properties p = new Properties();
p.load(in);

 

2。使用java.util.ResourceBundle类的getBundle()方法
示例: 

ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());

 

3。使用java.util.PropertyResourceBundle类的构造函数
示例:

 InputStream in = new BufferedInputStream(new FileInputStream(name));
ResourceBundle rb = new PropertyResourceBundle(in);

 

4。使用class变量的getResourceAsStream()方法
示例:

 InputStream in = JProperties.class.getResourceAsStream(name);
Properties p = new Properties();
p.load(in);

 

5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
示例:

 InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name);
Properties p = new Properties();
p.load(in);

 

6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
示例:

 InputStream in = ClassLoader.getSystemResourceAsStream(name);
Properties p = new Properties();
p.load(in);

 

补充

Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
示例:

InputStream in = context.getResourceAsStream(path);
Properties p = new Properties();
p.load(in);

 

 

spring中使用自定义properties文件

 

Spring简化了加载资源文件的配置,可以通过去加载,这个元素的写法如下:

 

<context:property-placeholder location="classpath:jdbc.properties"/>

 

 

如果想要配置多个properties文件

 

<context:property-placeholder location="classpath:jdbc.properties"/>

<context:property-placeholder location="classpath:jdbc.properties"/>

 

这种方式是不被允许的,一定会出"Could not resolve placeholder"。

 

解决方案:

 

(1) 在Spring 3.0中,可以写:

 

<context:property-placeholder location="xxx.properties" ignore-unresolvable="true"/>
 
<context:property-placeholder location="xxx.properties" ignore-unresolvable="true"/>

 

(2) 但是在Spring 2.5中,没有ignore-unresolvable属性,所以就不能使用上面的那种方法去配置,

 

可以改如下的格式:

 

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
    <list>
      <value>classpath:/jdbc.properties</value>
    </list>
  </property>
</bean>

 

 



posted @   mingruqi  阅读(1585)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示