我当前的代码包含@autowired,但是我想将其删除,然后使用代码对其进行初始化。如果您觉得难以理解,请拒绝我的问题,但请至少发表评论,以便我可以重新编辑,因为我是此注释材料的新手,但仍会弄湿我。
下面显示了我的代码,据我对自动装配的了解,它采用了“ Test”类中的值并将这些值连接到测试中。如果我从代码中删除此@autowired怎么办?我如何仍使其可执行?我的意思是,如果删除@autowired,如何仍可以在同一行中初始化值而不使用接线注释? -我想尝试这样做的原因是为了了解我的理解,同时看到更多不同的示例来改善我的困境
@Autowired
@Qualifier("testing")
Test testing;
我没有预期的结果,因为我只想了解注释并查看我的理解是否正确。
答案 0 :(得分:0)
有三种方法可以将自动关联(使用spring)注入到bean中:
自动装配字段本身
@Autowired
private Test test;
@Autowired
private SomethingService somethingService;
自动安装setter
private Test test;
private SomethingService somethingService;
@Autowired
public void setTest(Test test) {
this.test = test;
}
@Autowired
public void setSomethingService(SomethingService somethingService) {
this.somethingService = somethingService;
}
自动装配构造函数(不需要注释):
public class Something {
private Test test;
private SomethingService somethingService;
public Something(Test test, SomethingService somethingService) {
this.test = test;
this.somethingService = somethingService;
}
...
}
使用第三种方法的好处是,当您构造该类的实例进行测试时,可以传入想要的依赖项的任何实现。