美文网首页
spring注入static属性

spring注入static属性

作者: 南岩飞雪 | 来源:发表于2019-09-29 20:19 被阅读0次

问题

代码里又一些工具类,注入了一些bean;结果引用这个工具类也得是用bean注入的方式;写起来很难受,想直接调用静态方法省事

解决

    1. @set方法注入实现(推荐)
      实际还是@Component生成了bean,但是我们没用这个bean,把bean的属性赋值给类的属性
@Component
public class LogRobotHelper {
    private static String env;
    private static HttpTemplate httpTemplate;
    
    // 注入配置文件属性
    @Value("${environment.env}")
    public void setEnv(String env) {
        LogRobotHelper.env = env;
    }

    // 注入bean
    @Resource
    public void setHttpTemplate(HttpTemplate httpTemplate) {
        LogRobotHelper.httpTemplate = httpTemplate;
    }
    1. @PostConstruct OR xml中配置 init-method(麻烦)
@Component
public class LogRobotHelper {
    // 注入到临时的bean
    @Autowired
    private HttpTemplate httpTemplateTmp;
    // static 属性变量
    private static HttpTemplate httpTemplate;

    @PostConstruct
    public void init() {
        // 临时的bean引用 赋给 static 属性
        LogRobotHelper.httpTemplate = httpTemplateTmp;
    }
    1. 通过 ApplicationContext 对象,getBean(麻烦)

相关文章

网友评论

      本文标题:spring注入static属性

      本文链接:https://www.haomeiwen.com/subject/sryructx.html