我有一個類註釋爲@Component
,然後@Autowired
爲另一個類。但是,我需要刪除此註釋,而是在其之前自動裝配的類中使用帶註釋的方法創建它@Component
。將批註的@Component類更改爲@Bean批註的方法
,以前的類看起來像:
@Component
public class MyClass implements IMyClass
{
// Stuff
}
@Configuration
public class MyUsingClass
{
@Autowired
private IMyClass myClass;
private void methodUsingMyClass()
{
myClass.doStuff();
}
}
所以,現在我已經刪除了@Component
註釋,寫這樣的@Bean
註解的方法:
public class MyClass implements IMyClass
{
// Stuff
}
@Configuration
public class MyUsingClass
{
@Bean
public IMyClass getMyClass()
{
return new MyClass();
}
....
}
我的問題是圍繞取代了以前的呼叫myClass.doStuff()
使用新的bean。我現在在MyClass
類型的參數傳遞給私有方法:
private void methodUsingMyClass(final MyClass myClass)
{
myClass.doStuff();
}
...還是我直接調用此方法(似乎不正確的方式給我):
private void methodUsingMyClass()
{
getMyClass().doStuff();
}
......或者這兩個都不正確?