Spring——注解驱动和包扫描的配置对依赖注入的作用

一、Spring和Springmvc的注解驱动

Spring或Springmvc框架中要使用注解,需要配置注解驱动。


<mvc:annotation-driven/>

<context:annotation-config/>

<mvc:annotation-driven/>
<context:annotation-config/>


此时,要给某个类注入依赖,会发现并没有注入成功。
Spring——注解驱动和包扫描的配置对依赖注入的作用_第1张图片

二、Spring和Springmvc的包扫描

开始学习Spring时,我以为包扫描的作用是为了增加框架寻找和识别注解的效率,因为可以从指定包读取注解配置从而避免了全局扫描。然而,通过几次测试都发现,如果没有包扫描配置,即使配置了注解驱动也没法将对象放到IOC容器或者依赖注入。

<mvc:annotation-driven/>
<context:annotation-config/>

<context:component-scan base-package="com.zhang"/>

Spring——注解驱动和包扫描的配置对依赖注入的作用_第2张图片

三、测试

包扫描:

<context:component-scan base-package="com.zhang"/>

Spring——注解驱动和包扫描的配置对依赖注入的作用_第3张图片
实际上,配置了包扫描之后,Spring框架能够将@Component及其衍生的组件@Controller @Service @Repository识别,并将对应类型实例化放入IOC容器中,也能够实现对扫描到的包进行依赖注入。
不过在Springmvc中,除了有@Controller这个注解,还常用到@RequestMapping注解,因此在Springmvc配置文件中,必须有

<mvc:annotation-driven/>

你可能感兴趣的:(Spring——注解驱动和包扫描的配置对依赖注入的作用)