Java项目配置文件读取的两个方式

来源:互联网 发布:怎样快速提升淘宝信誉 编辑:程序博客网 时间:2024/05/17 09:02


一 .OWNER API 管理配置文件

1.在项目中引入owner的jar包 :owner-1.0.6-sources.jar,owner-java8-1.0.6-sources.jar

若是maven项目,可直接在pom.xml中添加:

     <dependency>            <groupId>org.aeonbits.owner</groupId>            <artifactId>owner-java8</artifactId>            <version>1.0.6</version>     </dependency>

可根据需要选择版本号

2.在项目的根目录下添加配置文件:Config.properties

port=80hostname=lilimaxThreads=100

3.

import org.aeonbits.owner.Config;import org.aeonbits.owner.Config.Sources;@Sources({"file:~/.MyConfig.config", "file:/etc/MyConfig.config","classpath:MyConfig.properties" })public interface  MyConfig extends Config{    int port();    String hostname();    @DefaultValue("42")    int maxThreads();}
@Sources中的参数为资源地址数组,可以选择多个,从多个文件中查找


4.测试

public static void main( String[] args ){MyConfig cfg = ConfigFactory.create(MyConfig.class);System.out.println("---- " + cfg.hostname() + "---------" + cfg.port() +   " ------- " + cfg.maxThreads());}


二. 根据ResourceBundle类读取配置文件

import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.util.PropertyResourceBundle;import java.util.ResourceBundle;import javax.servlet.ServletContext;import org.springframework.web.context.ContextLoader;import org.springframework.web.context.WebApplicationContext;public class Config {private static ResourceBundle RESOURCE_BUNDLE;    private static BufferedInputStream inputStream;  public static String getString(String key) {WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();            ServletContext context = webApplicationContext.getServletContext(); String webappRoot = context.getRealPath("/");File f = new File(new File(webappRoot, "WEB-INF"), "conf.properties");        try {              inputStream = new BufferedInputStream(new FileInputStream(f));              RESOURCE_BUNDLE = new PropertyResourceBundle(inputStream);              inputStream.close();              return RESOURCE_BUNDLE.getString(key);        } catch (Exception e) {               e.printStackTrace();             return null;        }    }
此种方法可读取WEB-INF目录中的配置文件


原创粉丝点击