当前位置: 首页 > article >正文

读取配置文件方式

方式一:XML

配置方式一:

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

配置方式一:

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

 配置文件:

prop.driverClass=com.mysql.jdbc.Driver
prop.url=jdbc:mysql://localhost:3306/userDb
prop.userName=root
prop.password=abc123

\

动态取值:

    <!--配置连接池--> 
    <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

@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

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

测试:

    @Autowired
    Person person;
    
    @Test
    void test() {
        System.out.println(person);
    }

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

@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;
}
@EnableConfigurationProperties(Person.class)
@Configuration
public class MyConfig {
    
    @Bean
    public Person person(Person person) {
        System.out.println(person);
        return person;
    }
}

测试:

@Autowired
MyConfig myConfig;

方式四:@Value+application.properties

配置文件:

myconfig.name=1111
myconfig.pwd=2222

测试:application.properties

    @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

other.name=3333
other.pwd=4444
@PropertySources({
        @PropertySource("classpath:other.properties")
})
@Configuration
public class OtherConfig {
   

测试:

    @Value("${other.name}")
    private String otherName;

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

    @Test
    void test3() {
        System.out.println(otherName);
        System.out.println(otherPwd);
    }


http://www.kler.cn/a/513939.html

相关文章:

  • 【Python项目】小区监控图像拼接系统
  • Linux:进程(三)
  • Golang的文件处理优化策略
  • 图片生成Prompt编写技巧
  • 走进DevOps:让开发与运维齐头并进
  • 低代码系统-产品架构案例介绍(五)
  • Docker网段和服务器ip冲突导致无法访问网络的解决方法
  • 如何使用python技术爬取下载百度文库文档?
  • “深入浅出”系列之算法篇:(2)openCV、openMV、openGL
  • 【vim】vim怎样直接跳转到某行?
  • dl学习笔记:(7)完整神经网络流程
  • TongESB7.1.0.0如何使用dockercompose运行镜像(by lqw)
  • 失业ing
  • 【22】Word:小李-高新技术企业政策❗
  • 机器学习09-Pytorch功能拆解
  • 基于微信小程序的驾校预约小程序
  • xctf-comment(Intruder,git恢复,SQL注入,Hex解码)
  • 【实践】Python封装植物的健康状态,确保数据访问安全
  • 数据库索引(1)
  • 2025年最新深度学习环境搭建:Win11+ cuDNN + CUDA + Pytorch +深度学习环境配置保姆级教程
  • C# OpenCV机器视觉:红外体温检测
  • npm和webpack学习
  • 150 Linux 网络编程6 ,从socket 到 epoll整理。listen函数参数再研究
  • 解决github无法clone的问题
  • 树莓派4基于Debian GNU/Linux 12 (Bookworm)设置程序开机自启动
  • TiDB 的高可用实践:一文了解代理组件 TiProxy 的原理与应用