Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 Spring自动默认定义bean(无组件扫描)_Java_Spring_Dependency Injection_Guice - Fatal编程技术网

Java Spring自动默认定义bean(无组件扫描)

Java Spring自动默认定义bean(无组件扫描),java,spring,dependency-injection,guice,Java,Spring,Dependency Injection,Guice,为了减少Spring配置中的样板文件数量(不使用组件扫描等),我希望以类似Guice的模式运行Spring,并使用“约定优先于配置” 在Guice中,您不需要明确地配置bean。我可以创建如下所示的bean结构,Guice将“做正确的事情”: 在Spring中,我需要一个关联的@Configuration类,它将充满这样的样板文件: class Config { @Bean public void foo() { return new Foo(); } // etc. }

为了减少Spring配置中的样板文件数量(不使用组件扫描等),我希望以类似Guice的模式运行Spring,并使用“约定优先于配置”

在Guice中,您不需要明确地配置bean。我可以创建如下所示的bean结构,Guice将“做正确的事情”:

在Spring中,我需要一个关联的
@Configuration
类,它将充满这样的样板文件:

class Config {
  @Bean public void foo() {
    return new Foo();
  }

  // etc.
}
我怀疑这在一家定制的BeanFactory中是可能的,但如果在春天可以通过其他方式实现的话,我想避免走这条路


@ComponentScan
将是一种替代方法,但我希望它能够处理我无法控制的对象,这些对象没有合适的spring
@Component
注释,我更喜欢使用手术刀的方法,而不是组件扫描的散弹枪。

我想你已经基本解决了这个问题。您可以使用
以及一些针对您无法控制的类的基于xml的bean定义。Guice方法是为这些类绑定一个
提供程序。选择你的毒药。最近,我发现自己也在试图从这些DI框架中挤出更多的魔力,结果却发现有些东西不能自动工作是有充分理由的。如果还有别的事,那就很危险了

class Config {
  @Bean public void foo() {
    return new Foo();
  }

  // etc.
}