java - 如何在具有 void 方法的类中使用 spring @autowired 注解?

标签 java spring

我有一个接口(interface)并且服务实现了它。它有一些无效的方法。 我正在使用 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
}

这里如何实现依赖注入(inject)?

最佳答案

  1. 在 AppConfig 类上使用 @Configuration 注解,这样该类上定义的所有 Bean 都将加载到 Spring 上下文中。

  2. 如果你在DummyClass上使用@Service注解,你不需要声明@Bean注解,因为你已经让spring检测这个类进行依赖注入(inject)。另一方面使用@Bean注解来指定类的实例化。通常我让 @Bean 来复杂的类进行依赖注入(inject)或覆盖配置。

关于java - 如何在具有 void 方法的类中使用 spring @autowired 注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54237698/

相关文章:

java - 如何在失败时重新安排 Apache Camel Quartz (CronScheduledRoutePolicy) 端点路由

java - Spring mvc 应用程序中的 404 错误

java - 确保 Hibernate session 中的唯一序列号

java - Spring 安全: Expecting to only find a single bean for type interface org. springframework.security.authentication.AuthenticationManager

java - 扩展 OkHttp 协议(protocol)选择

java - 使用 PreparedStatement 插入。如何自动增加 ID?

java - 具有多个可选参数的 Spring Data MongoDB AND/OR 查询

java - 如何在面向服务的架构中使用mybatis 提高效率?

java - 使用自定义 ItemReader 调用带有 IN 和 OUT 参数的存储过程

java - java中如何将一个对象映射到另一个对象