一、普通方法获取配置文件值
- 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<String> 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<String> 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 xml文件需要的配置
- <!-- 加载应用属性实例,可通过 @Value("#{APP_PROP['jdbc.driver']}") String jdbcDriver 方式引用 -->
- <util:properties id="APP_PROP" location="classpath:settings.properties" local-override="true"/>
- 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;
- }