我是Spring 3的新手,尤其喜欢它的附加注释
我不知道如何拥有一个控制器类B,该类扩展了控制器类A,其中A是通过xml文件定义的,以具有一些有用的功能-例如,数据库连接或其他.
如果我有一个(抽象的)父bean A,还有一个具体的bean B,而B是控制器,并且我正在使用注释自动装配(您知道,
< context:component-scan base-package =“ package” />
),我可以以某种方式将B绑定到A吗?我是否使用注释?考虑到A需要在其中放入一些随机的四季豆,我在哪里定义A?
最佳答案
正如@Shakedown提到的那样,在控制器中建立数据库连接是一种不好的做法.我知道这只是一个例子,但我想确保指出了这一点.
原文链接:https://www.f2er.com/spring/531760.html使用Spring批注,对于大多数项目,您几乎可以完全摆脱XML.
通常有一个AbstractController类,从中可以派生其他具体的类.
@Controller
@RequestMapping(value = "/action")
public class AController extends AbstractController
{
@Autowired
private AService aService;
...
}
可以使用@Autowired批注将依赖项注入到Spring类中.如果要将依赖项注入到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;
}
...
}
然后,您可以在子类中使用依赖项.