springboot读取自定义配置文件及乱码问题
首先在 resources 目录下自定义一个配置文件
如sms.properties
#短信平台相关 mall.sms.regionId=ch-hangzhou mall.sms.accessKeyId=********* mall.sms.accessKeySecret=********** mall.sms.product=Dysmsapi mall.sms.domain=dysmsapi.aliyuncs.com mall.sms.timeout=1000 mall.sms.signName=静安国际万国荟公园 mall.sms.templateCode=SMS_150172034 mall.sms.templateParam={\"code\":\"@code@\"} mall.sms.verify.timeout=600
在需要用到此配置的类上加上注解 @PropertySource
@Service @Slf4j @PropertySource(value="classpath:sms.properties",encoding = "utf-8") public class SmsService { @Autowired private RedisManager redisManager; @Value("${mall.sms.signName}") private String signName; @Value("${mall.sms.templateCode}") private String templateCode; @Value("${mall.sms.templateParam}") private String templateParam; @Value("${mall.sms.verify.timeout}") private long timeout; }
@PropertySource注解中 value 的取值为 classpath:配置文件名称
最后有两点需要注意造成乱码的情况:
首先:需要注意properties文件的格式应该设为utf-8
然后读取配置文件时 @PropertySource不仅需要加上value属性,还需要设置 encoding为utf-8
引用配置的类需要添加spring可识别的注解,将此类交给spring管理