通过Spring框架读取.properties文件

    技术2024-10-04  64

    在项目src/main/resources下创建jdbc.properties文件,并且在文件中,添加一些自定义的配置信息:

    db.driver=com.mysql.cj.jdbc.Driver db.url=jdbc:mysql://localhost:3306/vrd?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true db.username=root db.password=123456

    如果要读取以上的信息,可以将这些信息读取到某个类的各个属性中,创建一个类,并在类中声明4咯属性,属性跟上面的数量相同: package cn.tedu.spring;

    public class JdbcConfig {

    private String driver; private String url; private String username; private String password;

    }

    然后在类声明之前,通过@PropertySource配置需要读取的配置文件:

    @PropertySource("classpath:jdbc.properties")

    然后再各个属性声明之前,通过@Value注解读取配置中的值,并且注入到属性中,格式为@Value(“${配置文件的属性名称}”),例如:

    package cn.tedu.spring; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; import org.springframework.stereotype.Repository; @PropertySource("classpath:jdbc.properties") @Component public class GetString { @Value("${db.driver}") private String driver; @Value("${db.url}") private String url; @Value("${db.username}") private String username; @Value("${db.password}") private String password; @Override public String toString() { return "GetString [driver=" + driver + ", url=" + url + ", username=" + username + ", password=" + password + "]"; } }

    使用的是Spring读取文件的,并为以上属性赋值,所以以上的GetString应该要被Spring管理,所以,首先使用一个类来配置组键扫描:

    package cn.tedu.spring; import org.springframework.context.annotation.ComponentScan; @ComponentScan("cn.tedu.spring") public class SpringConfig { }

    然后记住在前面要加@Component注解! 注意:在Windows操作系统中,如果配置文件中的属性名是username,则最终注入属性的值将不是配置文件中的值,而是当前登录Windows操作系统的用户名,为了避免出现此类问题,建议在配置文件中,每个属性的名称之前都添加一些自定义的前缀。

    Processed: 0.010, SQL: 9