带注释的Spring MVC控制器是否也可以使用@ Component / @ Service类型的注释进行注释,并且既可以用作控制器又可以用作bean?
答案 0 :(得分:5)
编辑:更加重视软件设计方面,并更新到SpringV3的API链接
正如其他答案中所提到的,这不是Spring MVC的理想方法,但是控制器已经可用于ApplicationContext中的自动装配。
它已经是ApplicationContext中的Bean,因此您可以按类型自动连接它。无需添加@Component注释。
来自Spring API文档:“此注释用作@Component的特化,允许通过类路径扫描自动检测实现类。”
http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/stereotype/Controller.html
@Service也是如此。
虽然我自己也做过,但我通常不会推荐这种设计方法。
如果可能的话,将所需的功能重构为一个单独的bean,然后可以根据需要(自动)连接到@Controller和任何其他bean。
如果像你评论的那样,你被“逼入”这个决定(就像我以前的设计选择一样),那就这样吧。
HTH
答案 1 :(得分:4)
它可以但不应该。 Web控制器应该是一个入口点,没有别的。
它执行的任何可重用逻辑应该在专用的service layer中,而不是在控制器本身中
答案 2 :(得分:1)
不,听起来好像做得太多了。一个或另一个,不是两个。我不知道是否可能(我对此表示怀疑),但我确信这是不可取的。
答案 3 :(得分:0)
我认为您应该更多地了解Front Controller,MVC,DAO和Multitier架构等模式。