读取配置文件方式

方式一:XML

配置方式一:

java 复制代码
    <!--引入外部属性文件1-->
    <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
        <property name="locations" value="classpath:jdbc.properties"/>
    </bean>

配置方式一:

java 复制代码
<!--引入外部属性文件2-->
    <context:property-placeholder location="classpath:jdbc.properties"/>

配置文件:

bash 复制代码
prop.driverClass=com.mysql.jdbc.Driver
prop.url=jdbc:mysql://localhost:3306/userDb
prop.userName=root
prop.password=abc123

\

动态取值:

bash 复制代码
    <!--配置连接池--> 
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="url" value="${prop.url}"/>
        <property name="username" value="${prop.userName}"/>
        <property name="password" value="${prop.password}"/>
        <property name="driverClassName" value="${prop.driverClass}"/>
    </bean>

方式一:@ConfigurationProperties(prefix = "xxx")+@Component

java 复制代码
@ConfigurationProperties(prefix = "person")
@Component
@Data
public class Person {
    private String userName;
    private Boolean boss;
    private Date birth;
    private Integer age;
    private Pet pet;
    private String[] interests;
    private List<String> animal;
    private Map<String, Object> score;
    private Set<Double> salarys;
    private Map<String, List<Pet>> allPets;
}

配置文件:application.properties

bash 复制代码
person.user-name=zhangsan
person.boss=true
person.birth=2019/12/9
person.age=18
person.pet.name=阿狗
person.pet.weight=99.99
person.interests=篮球,足球
person.animal=阿猫,阿狗
person.score.english=80
person.score.math=80
person.salarys=9999.98,9999.99
person.all-pets.sick[0].name=阿狗;
person.all-pets.sick[0].weight=99.99
person.all-pets.health[0].name=阿花
person.all-pets.health[1].name=阿明
person.all-pets.health[0].weight=199.99
person.all-pets.health[1].weight=200

#https://blog.csdn.net/qq_35754073/article/details/136606186

测试:

java 复制代码
    @Autowired
    Person person;
    
    @Test
    void test() {
        System.out.println(person);
    }

方式三:@ConfigurationProperties+@EnableConfigurationProperties(xxx.class)

java 复制代码
@ConfigurationProperties(prefix = "person")
@Data
public class Person {
    private String userName;
    private Boolean boss;
    private Date birth;
    private Integer age;
    private Pet pet;
    private String[] interests;
    private List<String> animal;
    private Map<String, Object> score;
    private Set<Double> salarys;
    private Map<String, List<Pet>> allPets;
}
java 复制代码
@EnableConfigurationProperties(Person.class)
@Configuration
public class MyConfig {
    
    @Bean
    public Person person(Person person) {
        System.out.println(person);
        return person;
    }
}

测试:

java 复制代码
@Autowired
MyConfig myConfig;

方式四:@Value+application.properties

配置文件:

bash 复制代码
myconfig.name=1111
myconfig.pwd=2222

测试:application.properties

java 复制代码
    @Value("${myconfig.name}")
    private String name;

    @Value("${myconfig.pwd}")
    private String pwd;

    @Test
    void test2() {
        System.out.println(name);
        System.out.println(pwd);
    }

方式四:@Value+xxx.properties自定义配置文件

配置:other.properties

bash 复制代码
other.name=3333
other.pwd=4444
java 复制代码
@PropertySources({
        @PropertySource("classpath:other.properties")
})
@Configuration
public class OtherConfig {
   

测试:

java 复制代码
    @Value("${other.name}")
    private String otherName;

    @Value("${other.pwd}")
    private String otherPwd;

    @Test
    void test3() {
        System.out.println(otherName);
        System.out.println(otherPwd);
    }
相关推荐
小蒜学长1 分钟前
django全国小米su7的行情查询系统(代码+数据库+LW)
java·数据库·spring boot·后端
杨杨杨大侠11 分钟前
第2章:设计核心接口和事件模型
java·github·eventbus
杨杨杨大侠17 分钟前
第1章:事件驱动框架基础概念
java·github·eventbus
半夏陌离17 分钟前
SQL 进阶指南:视图的创建与使用(视图语法 / 作用 / 权限控制)
java·数据库·mybatis
程序员皮皮林1 小时前
Java jar 如何防止被反编译?代码写的太烂,害怕被人发现
java·开发语言·jar
橙序员小站1 小时前
搞定系统面试题:如何实现分布式Session管理
java·后端·面试
叫我阿柒啊1 小时前
从Java全栈到Vue3实战:一次真实面试中的技术探索
java·数据库·spring boot·微服务·typescript·vue3·restful
武子康2 小时前
Java-118 深入浅出 MySQL ShardingSphere 分片剖析:SQL 支持范围、限制与优化实践
java·大数据·数据库·分布式·sql·mysql·性能优化
努力努力再努力wz2 小时前
【c++进阶系列】:万字详解AVL树(附源码实现)
java·运维·开发语言·c++·redis
爱学习de测试小白2 小时前
13-Java-面向对象-封装和this关键字
java