zoukankan      html  css  js  c++  java
  • 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>



  • 相关阅读:
    使用LR编写windows sockets协议xml报文格式脚本实战
    使用LR编写HTTP协议Json报文格式接口脚本实战
    web类协议脚本-飞机订票系统示例
    使用LR编写下载类脚本
    python算法-选择排序
    python算法-冒泡排序
    用户在浏览器中输入一个url发生的奥秘
    浅谈cookie和session
    selenium加载配置参数,让chrome浏览器不出现‘Chrome正在受到自动软件的控制’的提示语,以及后台静默模式启动自动化测试,不占用桌面的方法
    Python之文件和目录操作
  • 原文地址:https://www.cnblogs.com/Im-Victor/p/10995939.html
Copyright © 2011-2022 走看看