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


一 .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=80
hostname=lili
maxThreads=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目录中的配置文件


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值