springMVC不扫描controller中的方法问题

目录

  • springMVC不扫描controller
    • 下面是正确的spring-mvc.xml文件
    • 那我遇到这个问题的原因是什么呢?
  • springMVC包扫描问题
    • 为什么@COntroller要放在springMVC中?

springMVC不扫描controller 最近把之前的一个Maven项目在一个新的电脑环境上导入Eclipse,启动时却发现不扫描 controller 中的方法

下面是正确的 spring-mvc.xml 文件
text/html; charset=UTF-8


那我遇到这个问题的原因是什么呢?
是因为新配置的环境,缺少很多 jar 包,所以项目导入Eclipse之后,这个文件就报 “” 这一句有错了,
有错,我也没多想就先把它给删除了。
好吧,问题就这样产生了。
小结一下:在导入一个项目之后,可能会提示有很多错误,但针对一些配置文件,解决的方式不应该是删除或修改文件中的内容,
而应该先解决依赖等问题,不然像我这种之前没有问题的项目,就因为换了环境就产生怪问题。

springMVC包扫描问题
为什么@COntroller要放在springMVC中?
@Controller注解的bean必须由DispatcherServlet初始化的children webApplicationContext来管理,在DispatcherServlet初始化的context中会扫描当前容器所有的bean实例,根据类级别以及方法级别的映射信息注解组装成对应的HandleMappering信息,但是ContextLoaderListener是不具备这个功能的。
一句话spring中没有办法扫描controller的bean,所以spring中可以扫描所有的,但是对于@controller不会骑作用,所以必须在springMVC中再加一次对controller的扫描。
PS:之前遇到一个事物的,一开始把@Transactional放在COntroller怎么都不起作用,原因是只在spring中配置了

而Controller没配,原因只会查找和它在相同的应用上下文件中定义的bean上面的@Transactional注解,如果你把它放在Dispatcher的应用上下文中,它只检查控制器(Controller)上的@Transactional注解,而不是你services上的@Transactional注解。
【springMVC不扫描controller中的方法问题】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    推荐阅读