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管理
posted @ 2019-11-15 17:48  我看见的世界  阅读(670)  评论(0编辑  收藏  举报