springboot在静态类中引入properties 的值
1、dev.properties 的font.config.path值传入静态 类中
server.port=9001 debug=false logging.level.root=warn logging.level.tk.mybatis.spring.mapper=trace #logging.path=${user.dir}/logs/ #todo logger 的info信息没有写入文件 ,文件大小没有设置 logging.file=test.log # 多文件上传最大大小 spring.servlet.multipart.max-request-size=200MB # 单文件上传最大大小 spring.servlet.multipart.max-file-size=50MB #file.dest.path=D:/dev/TSC/test_data/ file.dest.path=${user.dir}//DataFile// #file.dest.path=${basedir} #用户权限时长配置文件 user.config.path=${user.dir}//tsc-common//src//main//resources//userConfig.txt # 字体包路径 font.cofig.path=${user.dir}//tsc-common//src//main//resources//font// #user.config.path=${user.dir}\\tsc-common\\src\\main\\resources\\userConfig.txt
2、注入bean 管理 GlobalConfig.java类:使用@Component 注解,将值set给另外一个静态 成员,(注,使用静态测试方法,还是提示null,但启动 MainApplication 项目,会成功 >>> 错误:由于加了@Component注解,交由spring管理了,所以静态类中的测试方法是不能取到值的(null))
//package com.swjtu.tsc.service.controllers; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; @Configuration @PropertySource("classpath:application-dev.properties") @ConfigurationProperties(prefix = "font") @Component public class GlobalConfig { public static String FONT_CONFIG_PATH; @Value("${font.cofig.path}") public void setUsernam(String sERVER_IP) { FONT_CONFIG_PATH = sERVER_IP; }
public static void main(String[] rag){
String s = FONT_CONFIG_PATH; // 这样测试还是为null
System.out.println(s);
}
}
3、test.java类静态方法getFontPath: 在启动项目后能获取到 dev-properties 的font.cofig.path值
public class test(){ public static void getFontPath(){ String fontpath= GlobalConfig.FONT_CONFIG_PATH; System.out.println("字体路径= "+fontpath); } }