gpt4 book ai didi

Spring框架中的Java配置

转载 作者:行者123 更新时间:2023-11-30 04:27:23 25 4
gpt4 key购买 nike

我有类AB及其实现AImplBImpl

interface A {
}
interface B {
}
interface C {
}
class AImpl{
@Inject
AImpl(B b){}
}
class BImpl{
@Inject
BImpl(String foo, C c){}
}
class CImpl{
}

要在 Guice 中配置依赖项,我会编写 smt

bind(A.class).to(AImpl);
bind(C.class).to(CImpl);
@Provides B provideB(C c){
return new BImpl("foo", c)
}

在 Spring 我可以做 smt 就像

@Bean public A a() {
return new AImpl(b())
}
@Bean public B b() {
return new BImpl("foo", c());
}
@Bean public C c() {
return new CImpl();
}

有几个缺点

  • 我应该写 AImpl 在 2 个地方需要 B(构造函数和配置)。
  • 我应该编写更多代码(CImp 和 AImpl 需要创建方法而不是一个表达式)

有什么方法可以在不使用 xml 的情况下改进我的 spring 配置吗?

更新我也不想用 @Component 之类的 spring 相关注释来污染我的类。与任何其他注入(inject)相比,我更喜欢构造函数注入(inject)。扫描也不是更好的解决方案。那么,我可以用Guice方式做Spring吗?

upd2

所以我想要存档

  • Autowiring
  • 构造函数注入(inject)

没有

  • XML
  • 路径扫描

最佳答案

您可以使用 Autowiring 来代替使用 java 代码创建 Bean。您可以在 java 配置中定义 ComponentScan。您不需要使用任何 XML 文件。

关于Spring框架中的Java配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15520282/

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