[英]How to use spring @autowired annotation in the class having void methods?
我有一個接口和服務實現它。 它有一些 void 方法。 我正在使用 spring java bean 配置。 但是由於方法void
而無法創建bean對象。如何處理這個問題。
在閱讀了一些博客后,我嘗試使用@PostConstruct
而不是@Bean
,但沒有成功。
public interface MyInterface {
void someData(List<MyClass> list, String somedata);
}
@Service("myInterface")
public DummyClass implements MyInterface {
public void someData(List<MyClass> list, String somedata){
// my business logic
}
}
public AppConfig {
@Bean
public MyInterface myInterface {
return new DummyClass(); // but gives error void cannot return value
}
}
我的 Junit 看起來像這樣
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
classes = {AppConfig.class},
loader = AnnotationConfigContextLoader.class
)
public class MyTest {
@Autowired
DummyClass dummyClass;
// If I don't use AppConfig and simply autowire then I get
"Error creating bean name, unsatisfied dependency
}
我如何在這里實現依賴注入?
在 AppConfig 類上使用 @Configuration 注釋,這樣在這個類上定義的所有 bean 都將加載到 spring 上下文中。
如果在 DummyClass 上使用 @Service 注釋,則不需要聲明 @Bean 注釋,因為您已經在說要 spring 檢測該類是否進行依賴注入。 另一方面,使用@Bean 批注來指定類的實例化。 通常我讓@Bean 用於依賴注入或覆蓋配置的復雜類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.