开发中遇到的问题,百度的答案我都没有找到,去找大佬获取到的经验总结,这只是其中的一种方法,如果其他大佬有新的方法,可以分享分享。
【资料图】
一、非静态属性1.1 yml文件
自定义配置信息,通过我们编写的代码读取。
image: path: E:\image #存储文件的磁盘目录 server: http://localhost:8082/image/ #文件访问基础路径
1.2 类
非静态属性中@Value生效
ps:不是在控制层中拥有@Controller注解,说明没有把该类放进IOC容器中,启动类时会找不到@Value,在其他类中可以用@Component注解,将该类注册到IOC容器中,使得程序运行时,能够找得到。
@Value("${image.path}")private String path; // path = E:\image//从配置文件中读取公共配置信息@Value("${image.server}")private String server;
二、 静态属性2.1 yml文件
# 自定义二维码配置信息qrcode: width: 600 # 二维码宽度 height: 600 # 二维码高度
2.2 类
静态属性中@Value不生效
ps:使用@ConfigurationProperties注解来获取application.yml配置文件中的第一个属性名,接着只需要属性名和二级属性相同即可获取到。
// 想要在工具类的静态属性获取到application.yml配置文件内容的配置信息// 1. 先加上注解@Component // 注册到IOC容器@ConfigurationProperties(prefix = "qrcode") // 获取到配置文件的属性public class QRcodeUtil {// 通过读取application.yml配置文件内容中的配置信息// @Value("${qrcode.width}") // 再静态属性中@Value不生效private static int width; //图形宽 // @Value("${qrcode.height}")private static int height; //图形高 // 3. 需要给属性值手动设置set方法public void setWidth(int width) { QRcodeUtil.width = width;}public void setHeight(int height) { QRcodeUtil.height = height;}
记录每一个学习瞬间
标签: