我有一个类(服务层),它动态创建类实例并调用方法 - model.getClassInstance().method();
,此方法实习生调用另一个抽象方法并在继承类中实现。
继承类包含@autowired来访问DB,但由于这个类是通过实例化new Object()
来调用的,所以我无法自动装配字段(NullPointer异常)。
那么有没有办法在没有 @Service或@Controller或@Component?的情况下自动连接该字段?
我尝试将继承的类添加到 spring-servlet.xml 作为bean但没有用。
请帮帮我。
答案 0 :(得分:2)
是否可以使用spring bean而不是new对象创建该对象?因为那时春天无法控制这个物体。
如果这不是一个选项,那么您可以通过使用AutowireCapableBeanFactory
并在您的对象上调用autowireBean(Object existingBean)
来执行此操作。这个方法使对象像对待Spring一样对待。
private @Autowired AutowireCapableBeanFactory autowireCapableBeanFactory;
public void func()
{
Employee employee = // Dynamically loaded object.
// After this below line, employee object will have its dependecies injected.
autowireCapableBeanFactory.autowireBean(employee);
}