springMVC不扫描controller中的方法问题

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中的方法问题)