runliuv

runliuv@cnblogs

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

 
posted on 2023-12-06 11:32  runliuv  阅读(83)  评论(0编辑  收藏  举报