如何将静态字段的值注入构造函数中

时间:2017-03-07 06:53:04

标签: spring

我想在X:

的构造函数中注入System.out
@Component
public class XImpl implements X {

  PrintStream stream;

  @Autowired
  public XImpl(@Qualifier("...")PrintStream stream) {
    this.stream = stream;
  }
}

如何使用限定符来做到这一点?

2 个答案:

答案 0 :(得分:0)

在XML配置中,使用util:const标记很简单。

在注释配置中,您可以使用@Value结合SpEL来完成此操作,例如:

@Value("#{T(java.lang.System).out}")

答案 1 :(得分:0)

定义一个bean名称" sysout"在你的主要班级:

@Bean(name = "sysout")
public PrintStream getSysOut() {
    return System.out;
}

现在你可以像这样注入这个bean:

PrintStream stream;

@Autowired
public PrinterX(@Qualifier("sysout") PrintStream stream) {
    this.stream = stream;
}

@RequestMapping("test")
public String test(){
    stream.println("This works");
    return "tested";
}

这输出"这适用于"在控制台中。