使用 spring boot 时遇到问题。这个代码示例:
@Component
class Bat extends OtherLibrary{
@Autowired
public Life var;
@PostConstruct
public void registerBat(){
OtherLibraryApi api = new otherLibraryApi()
api.register(new Bat());
}
@Override
public void onResponce(ResponceVal respVal){
Life sum = respVal.getLife().add(var);
}
}
Class Bat 扩展第三方库类 OtherLibrary 。 Thrid party库有抽象方法 onResponce ,这个库在某种方法上异步调用。问题是,当调用 onResponce 方法时,它不包含弹簧上下文,因此方法 onResponce 中的自动连接字段 var 具有空值。
如何在第三方库方法中包含弹簧上下文以使用自动装配的字段?
答案 0 :(得分:1)
api.register(new Bat());
这绝对是错误的(从Spring的角度来看)!我不确定如何传递this
代替new Bat()
?这样,Bat
类的Spring托管版本将被注册。
e.g。
api.register(this);