gpt4 book ai didi

spring - spring 父 bean 发生了什么事?

转载 作者:行者123 更新时间:2023-12-04 17:19:09 26 4
gpt4 key购买 nike

我是 Spring 3 的新手,尤其是它的额外注解

我不知道如何拥有 Controller 类 B ,扩展 Controller 类 A , 其中A通过 xml 文件定义有一些有用的东西 - 例如,数据库连接或其他。

如果我有一个(抽象的)父 bean A ,和一个具体的 bean B , 和 B是一个 Controller ,我正在使用注释自动接线(你知道的, <context:component-scan base-package="package"/>), 我能以某种方式绑定(bind) BA ?我使用注释吗?我在哪里定义 A ,鉴于 A需要放入一些随机的 Spring bean 吗?

最佳答案

如@Shakedown 所述,在 Controller 中建立数据库连接是一种不好的做法。我知道这只是一个例子,但我想确保指出这一点。

对于大多数项目,借助 Spring 注释,您几乎可以完全摆脱 XML。

通常有一个 AbstractController 类,从中派生出其他具体类。

@Controller
@RequestMapping(value = "/action")
public class AController extends AbstractController
{
@Autowired
private AService aService;
...
}

可以使用 @Autowired 注解将依赖注入(inject)到 Spring 类中。如果你想将依赖项注入(inject)到你的 AbstractController 中,这在技术上不是 Spring 管理的类 - 你可以通过添加 @Component 注释使其成为一个类。

@Component
public abstract class AbstractController
{
@Autowired
protected CommonService commonService;

@ExceptionHandler(MyException.class)
public ModelAndView handleMyException(MyException e)
{
ModelAndView model = new ModelAndView();

model.addObject("errorMessage", e.getMessage());

model.setViewName("error");

return model;
}

...
}

然后您可以在子类中使用依赖项。

关于spring - spring 父 bean 发生了什么事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8345819/

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