动态为属性赋值/动态获取配置文件里的内容

1、Spring框架中——@Value注解

1、初始版

 @Value注解  只可以直接为基本类型赋值和String类型(为对象赋值用@Autowired

 问题: 如果像图中赋值,则耦合性依然很高,不通用. 需要优化!!!

2、优化版

对象中的属性一般都是业务数据,如果需要为业务数据赋值,则一般采用properties文件 更加灵活.
位置: 在resources目录下(注意,后期properties文件会被优化为yml文件,操作相同)

1、创建user.properties配置文件

在这里插入图片描述

2、写user.properties配置文件的内容

#1.注意事项:  key=value  等号连接  2.中间不要添加多余的空格
#2.说明: windows系统中有环境变量username=系统用户名称,以后写业务数据时,最好绕开关键字username
#3.编码规则: 程序默认读取properties文件时,采用ISO-8859-1编码方式  出来的不是汉字
#           所以@PropertySource注解里要加上encoding = "UTF-8"

user.username=葫芦娃

#注意,原来写的名字是username,但是有bug,这样写获取的是计算机的用户名,所以我们可以加个前缀
#写成user.username(或者写成name)——只要不叫username怎么着都行

3、告知Spring容器有user.properties这么一个配置文件@PropertySource(value="classpath:/user.properties",encoding = "UTF-8")

并通过@Value(“${  }”)固定写法将配置文件中的值传过来

知识点:1、以后但凡看到了……Source(括号里起手写"classpath:/……")

                classpath:/ 代表resources 文件 的根目录

               2、编码规则: 程序默认读取properties文件时,采用ISO-8859-1编码方式
                      所以@PropertySource注解里要加上encoding = "UTF-8"

                       意思是读取时采用UTF-8方式读取

上图中可以写成@Value("${user.username:一号葫芦娃(设的默认值,若是配置文件中有,就会变成配置文件中的值;没有就会按照自己写的默认值来)}")

2、mybatis中:映射文件里 #{key}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值