Java获取Properties文件中值的方法

一、普通方法获取配置文件值

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;

public class Test {

	// 1。使用java.util.Properties 类的load()方法

	// 示例:

	public static String  getProperties_1(String url) throws IOException {

		InputStream in = new BufferedInputStream(new FileInputStream(url));

		Properties p = new Properties();

		p.load(in);

		return p.getProperty("jdbc.type");

	}

	// 2。使用java.util.ResourceBundle类的getBundle()方法

	// 示例:

	public static void getProperties_2(String url) {
		ResourceBundle rb = ResourceBundle.getBundle(url);
		Enumeration keys = rb.getKeys();
		while (keys.hasMoreElements()){
			
			System.out.println(rb.getString(keys.nextElement()));
		}
		
	}

	// 3。使用java.util.PropertyResourceBundle类的构造函数

	// 示例:

	public static void getProperties_3(String url) throws IOException {

		InputStream in = new BufferedInputStream(new FileInputStream(url));

		ResourceBundle rb = new PropertyResourceBundle(in);
		Enumeration keys = rb.getKeys();

		while (keys.hasMoreElements()){
			
			System.out.println(rb.getString(keys.nextElement()));
		}
	}

	// 4。使用class变量的getResourceAsStream()方法

	// 示例:

	public static String getProperties_4(String url) throws IOException {

		InputStream in = Test.class.getResourceAsStream(url);

		Properties p = new Properties();

		p.load(in);
		
		return p.getProperty("jdbc.url");

	}

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

	// 示例:

	public static String getProperties_5(String url) throws IOException {

		InputStream in = Test.class.getClassLoader().getResourceAsStream(url);

		Properties p = new Properties();

		p.load(in);

		return p.getProperty("jdbc.url");

	}

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

	// 示例:

	public static String getProperties_6(String url) throws IOException {

		InputStream in = ClassLoader.getSystemResourceAsStream(url);

		Properties p = new Properties();

		p.load(in);

		return p.getProperty("jdbc.url");

	}

	//

	// 补充

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

	// 示例:

	// public static Properties getProperties_8(String url) {

	// InputStream in = context.getResourceAsStream(url);

	// Properties p = new Properties ();

	// p.load(in);

	// }

	public static void main(String[] args) throws IOException {
		//需要将文件放置到项目根目录下面
		System.out.println(getProperties_1("settings.properties"));
		System.out.println("----------");
		//需要将文件放置到class文件同级目录下面
		getProperties_2("settings");
		System.out.println("----------");
		getProperties_3("settings.properties");
		System.out.println("----------");
		System.out.println(getProperties_4("settings.properties"));
		System.out.println("----------");
		System.out.println(getProperties_5("settings.properties"));
		System.out.println("----------");
		System.out.println(getProperties_6("settings.properties"));
	}

}
二、Spring 的  @Value注解的方式

Spring  xml文件需要的配置

	
    
	
java代码:
package cn.yufu.system.modules.oa.merchant.web;

import cn.yufu.system.common.web.BaseController;
import cn.yufu.system.modules.oa.merchant.service.ActBusApprovalService;

@Controller
@RequestMapping(value = "${adminPath}/merchant/actBusApproval")
public class ActBusApprovalController extends BaseController {

	@Autowired
	private ActBusApprovalService actBusApprovalService;
	// APP_PROP  与配置文件的id相同
	@Value("#{APP_PROP['fileUploadPath']}")
	private String uploadFilePath;
	

}


你可能感兴趣的:(Spring学习笔记,Java基础)