簡體   English   中英

如何在具有 void 方法的類中使用 spring @autowired 注釋?

[英]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
}

我如何在這里實現依賴注入?

  1. 在 AppConfig 類上使用 @Configuration 注釋,這樣在這個類上定義的所有 bean 都將加載到 spring 上下文中。

  2. 如果在 DummyClass 上使用 @Service 注釋,則不需要聲明 @Bean 注釋,因為您已經在說要 spring 檢測該類是否進行依賴注入。 另一方面,使用@Bean 批注來指定類的實例化。 通常我讓@Bean 用於依賴注入或覆蓋配置的復雜類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM