@Controller注解用来做什么的?
以前在编写Controller方法的时候,需要开发者自定义一个Controller类实现Controller接口,实现handleRequest方法返回ModelAndView。并且需要在Spring配置文件中配置Handle,将某个接口与自定义Controller类做映射。
这么做有个复杂的地方在于,一个自定义的Controller类智能处理一个单一请求。而在采用@Contoller注解的方式,可以使接口的定义更加简单,将@Controller标记在某个类上,配合@RequestMapping注解,可以在一个类中定义多个接口,这样使用起来更加灵活。
被@Controller标记的类实际上就是个SpringMVC Controller对象,它是一个控制器类,而@Contoller注解在org.springframework.stereotype包下。其中被@RequestMapping标记的方法会被分发处理器扫描识别,将不同的请求分发到对应的接口上。
Spring如何通过注解注入?
大家仔细想一下,为什么打上注解了就能实现接口功能了呢?换句话说,Spring怎么样找到开发者自定义的Controller把对应的请求分发到对应的方法上呢?
首先,要在Spring配置文件的头文件中引入spring-context。
其次,使用context:component-scan元素启动“包扫描”功能。
例如<context:component-scan base-package=“com.myz.controller”/>
base-package是值是包的路径。意思就是,启动了报扫描功