Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在具有void方法的类中使用spring@autowired注释?_Java_Spring - Fatal编程技术网

Java 如何在具有void方法的类中使用spring@autowired注释?

Java 如何在具有void方法的类中使用spring@autowired注释?,java,spring,Java,Spring,我有一个接口,服务实现了它。它有一些无效的方法。 我正在使用SpringJavaBean配置。但是由于void方法,无法创建bean对象。如何处理此问题 在阅读了一些博客之后,我尝试使用@PostConstruct而不是@Bean,但没有成功 public interface MyInterface { void someData(List<MyClass> list, String somedata); } @Service("myInterface") public Dum

我有一个接口,服务实现了它。它有一些无效的方法。 我正在使用SpringJavaBean配置。但是由于
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
  } 
}
我如何在这里实现依赖注入

  • 在AppConfig类上使用@Configuration注释,使用该注释,该类上定义的所有bean都将加载到spring上下文中

  • 如果您在DummyClass上使用@Service annotation,则不需要声明@Bean annotation,因为您已经告诉spring检测该类以进行依赖项注入。另一方面,使用@Bean注释来指定类的实例化。通常,我让@Bean访问复杂类以进行依赖注入或覆盖配置


  • 我高度怀疑这与无效方法有关。
    @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
    }