springboot中引用配置文件中的参数

本文介绍了一种在项目中配置微信登录的方法,通过配置文件而非硬编码来存储微信登录的相关参数。文中详细展示了如何使用Java的PropertiesUtil工具类来读取配置文件中的微信连接配置信息,包括获取单个属性、获取所有属性并转换为Map,以及如何在控制台上打印所有属性。

 

 首先可以看到这是做微信登陆时候的配置,一般不会写死都是通过配置文件获取,所以,记载配置文件中

 

 那么怎么引用呢:

 

 可以看到直接注入的方式就可以引用了,所以看下面:

进行页面跳转,并且带有参数的,

使用modelandview进行,或者采用返回一个字符串的方式进行

 

 

 

 还有中方式就是,丢在resource下面,然后进行读取,需要工具类:

import java.io.*;
import java.net.URI;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;



public class PropertiesUtil {

    private static Properties props = null;
    private static URI uri;
    private static String fileName = "/weixinconnectconfig.properties";
    
    private static InputStream in = null;

    static {
        try {
            props = new Properties();
            InputStream fis = PropertiesUtil.class.getResourceAsStream(fileName);
            props.load(fis);
            uri = PropertiesUtil.class.getResource(fileName).toURI();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取某个属性
     */
    public static String getProperty(String key) {
        try {
            props.load(PropertiesUtil.class.getResourceAsStream(fileName));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return props.getProperty(key);
    }

    /**
     * 获取所有属性,返回一个map,不常用 可以试试props.putAll(t)
     */
    @SuppressWarnings("rawtypes")
    public static Map<String, String> getAllProperty() {
        Map<String, String> map = new HashMap<String, String>();
        Enumeration enu = props.propertyNames();
        while (enu.hasMoreElements()) {
            String key = (String) enu.nextElement();
            String value = props.getProperty(key);
            map.put(key, value);
        }
        return map;
    }

    /**
     * 在控制台上打印出所有属性,调试时用。
     */
    public static void printProperties() {
        props.list(System.out);
    }

    /**
     * 写入properties信息
     */
    public static void writeProperties(String key, String value) {
        try {
            OutputStream fos = new FileOutputStream(new File(uri));
            props.setProperty(key, value);
            // 将此 Properties 表中的属性列表(键和元素对)写入输出流
            props.store(fos, "『comments』Update key:" + key);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 取默认key的value
     * */
    public static String getValue(String key){
        String value = null;
        props = new Properties();
        in = PropertiesUtil.class.getResourceAsStream(fileName);
        try {
            props.load(in);
        } catch (IOException e) {
//            e.printStackTrace();
        }
        value = (String) props.get(key);
        return value;
    }

}

 

<think>嗯,用户问的是如何在Spring Boot的properties文件中配置数据库连接。首先我需要回忆一下Spring Boot的数据库配置相关知识。记得在Spring Boot中,通常会在application.properties或者application.yml文件里配置数据源相关的属性。 用户可能用的是MySQL,因为之前的引用里有提到MySQL的URL。所以基本配置应该包括url、username、password、driver-class-name这些。对了,不同的数据库驱动类名可能不一样,比如MySQL是com.mysql.cj.jdbc.Driver,而旧版本可能用的是com.mysql.jdbc.Driver,需要注意版本问题。 另外,用户提到的引用里有druid连接池和分页配置,可能需要补充这部分内容。不过用户的问题主要是关于数据库连接的基本配置,可能不需要深入连接池的细节,但或许可以提到如何切换不同的连接池,比如HikariCP默认,或者使用Druid需要额外配置。 然后要确保语法正确,比如在properties文件中的格式,比如spring.datasource.url=jdbc:mysql://...,还有注意特殊字符是否需要转义,比如&符号在properties文件中应该写成&,或者使用URI编码。例如,在示例中的URL里用了&来分隔参数,这一点需要正确示范。 另外,可能需要提到配置连接池的一些常用参数,比如初始大小、最大连接数等,但用户可能只需要基础配置。同时,分页配置可能属于MyBatis的插件部分,比如PageHelper,但用户的问题集中在数据库连接,这部分可能暂时不需要涉及,除非用户进一步询问。 还要检查是否需要驱动依赖,比如在pom.xml中添加mysql-connector-java依赖,否则即使配置正确也会报错。不过用户的问题是关于properties文件的配置,可能已经知道需要添加依赖,但或许应该提一下确保依赖存在。 最后,生成相关问题的时候,要考虑用户可能的后续问题,比如连接池配置、多数据源、SSL设置或者异常处理等。这样能帮助用户更全面地了解相关配置。</think>### 在 Spring Boot 中配置数据库连接的步骤 #### 1. **基础配置(MySQL 示例)** 在 `application.properties` 文件中添加以下核心配置项: ```properties # 数据库连接基础配置 spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=UTF-8&useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` #### 2. **连接池配置(HikariCP 默认)** Spring Boot 默认使用 HikariCP 连接池,可添加优化参数: ```properties # HikariCP 连接池配置 spring.datasource.hikari.connection-timeout=30000 spring.datasource.hikari.maximum-pool-size=20 spring.datasource.hikari.minimum-idle=5 ``` #### 3. **切换其他连接池(如 Druid)** 若需使用 Druid 连接池,需额外添加依赖并配置: ```properties # Druid 配置示例 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.initial-size=5 spring.datasource.druid.max-active=20 ``` #### 4. **配置验证** 通过以下方式验证配置是否生效: ```java @SpringBootTest public class DataSourceTest { @Autowired private DataSource dataSource; @Test void testConnection() throws SQLException { System.out.println("连接池类型:" + dataSource.getClass().getName()); System.out.println("活动连接数:" + ((HikariDataSource) dataSource).getHikariPoolMXBean().getActiveConnections()); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值