gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:49:18 26 4
gpt4 key购买 nike

我有一个接口(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com