java springboot 读取自定义配置文件
application.properties、test.properties
maven中引用 :
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-configuration2</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.4</version> </dependency>
在“src\main\resources”中增加一个test.properties文件,内容如下:
database.url=222
database.username=333
database.password=uuu
在Controller中使用:
package com.sixun.scnxsign; import org.apache.commons.configuration2.Configuration; import org.apache.commons.configuration2.ex.ConfigurationException; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.io.File; @RestController public class TestController { @RequestMapping("/test3") public String test3() throws Exception{ StringBuilder scLog=new StringBuilder(); // Configurations 类和 springboot 的类有冲突,这里写全包名 org.apache.commons.configuration2.builder.fluent.Configurations org.apache.commons.configuration2.builder.fluent.Configurations configs = new org.apache.commons.configuration2.builder.fluent.Configurations(); try { String appRootDir = System.getProperty("user.dir"); scLog.append("\r\n"); scLog.append(" appRootDir: " + appRootDir); File fi=new File("test.properties"); scLog.append("\r\n"); scLog.append(" fi.getAbsolutePath: " + fi.getAbsolutePath()); //scLog.append("fi.getParent: " + fi.getParent()); // 加载 INI 配置文件 Configuration ini = configs.properties(new File("test.properties")); // 获取数据库连接 URL String url = ini.getString("database.url"); System.out.println("Database URL: " + url); scLog.append("\r\n"); scLog.append(" Database URL: " + url); // 获取数据库用户名和密码 String username = ini.getString("database.username"); String password = ini.getString("database.password"); System.out.println("Database Username: " + username); System.out.println("Database Password: " + password); scLog.append("\r\n"); scLog.append(" Database Username: " + username); scLog.append("\r\n"); scLog.append(" Database Password: " + password); } catch (ConfigurationException e) { e.printStackTrace(); } return "Hello Spring Boot 1" +scLog.toString(); } }
注意:Configurations 类和 springboot 的类有冲突,这里写全包名 org.apache.commons.configuration2.builder.fluent.Configurations
页面输出:
Hello Spring Boot 1 appRootDir: D:\java-proj\读取INI测试\scnxsign fi.getAbsolutePath: D:\java-proj\读取INI测试\scnxsign\test.properties Database URL: 222 Database Username: 333 Database Password: uuu
调试时,直接修改 resources\test.properties 文件。
发布时,把 test.properties 和你的 .jar 文本放同一目录即可,你可以实时修改 test.properties 里的内容 。
end