作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Spring 3 的新手,尤其是它的额外注解
我不知道如何拥有 Controller 类 B
,扩展 Controller 类 A
, 其中A
通过 xml 文件定义有一些有用的东西 - 例如,数据库连接或其他。
如果我有一个(抽象的)父 bean A
,和一个具体的 bean B
, 和 B
是一个 Controller ,我正在使用注释自动接线(你知道的, <context:component-scan base-package="package"/>
), 我能以某种方式绑定(bind) B
至 A
?我使用注释吗?我在哪里定义 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/
我是一名优秀的程序员,十分优秀!