我想知道如何在java對象中的Autowire sprig bean不受Spring應用程序上下文管理。 我創建了一個類的實例,但隨後的自動裝配對象爲空。例如。春天非託管對象的自動裝配
@Service
Class BaseFactory {
public BaseObject getObject(String type){
BaseObject object = null;
if(type.equalsIgnoreCase("order")){
object = new FirstServiceObject();
}
else if(type.equalsIgnoreCase("payment")){
object = new SecondServiceObject();
}
return object;
}
服務類
@Service
@Configurable
public class FirstServiceObject{
@Autowired
UserRepository mUserRepository;// coming as null
@Autowired
UserHelper userHelper;//coming as null
public getDownloadedData(String userName, String b){
User user = userHelper.findUser(userName); //null pointer exception
}
}從那裏,我呼籲上述
我的幫助類。
public class SomeHelper {
@Autowired
BaseFactory baseFactory;
public processUser(){
BaseObject object = baseFactory.getObject("order");
object.getDownloadedData("sunil","someString")
}
所有自動裝配Autowired豆即將爲空內FirstServiceObject
我與已經給了所有可能的解決方案檢查並沒有一個似乎是爲我工作。
你註釋@Component來你BaseFactory? – emotionlessbananas
爲什麼你甚至使用工廠,這隻會使事情變得複雜。爲什麼不直接將服務直接注入需要它的類?儘管如此,讓Spring管理服務,不要自己創建實例。 –
@Asterisk是的我試過了,也沒有爲我工作。 –