• 3、IOC——基于注解管理bean


    3.1、注解的作用

    注解可以理解为对代码的标记,就像家里面做饭用的调料瓶,上面总会有标签写着油、盐、酱、醋等。注解对代码而言就是这样的标记。不仅是给编译器使用,有时候也会提醒开发人员。

    3.2、注解与扫描

    基于注解管理bean,顾名思义是要通过注解来向IOC容器中添加bean。在对应的类上面添加相应的注解即可在IOC容器中添加对应的bean,有四种注解可以达到这种效果:

    //以下四种注解的作用是一样的,之所以不同是为了方便开发人员区别不同的类
    @Component
    @Controller		//多用于Controller类
    @Service		//多用于Service类
    @Repository		//多用于Dao类
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在对应的类上添加注解之后,经过扫描IOC容器才能知道那个类应该添加到容器中产生对应的bean。所以应当配置扫描标签:

    <context:component-scan base-package="com.lu.Spring">context:component-scan>
    
    • 1

    扫描标签通过配置要扫描的包来进行扫描,若是包中有的不想要进行扫描可以通过子标签进行排除:

    <context:component-scan base-package="com.lu.Spring">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:exclude-filter type="assignable" expression="com.lu.Spring.dao.UserDao"/>
    context:component-scan>
    
    • 1
    • 2
    • 3
    • 4

    annotation通过注解的相对路径来屏蔽扫描。

    assignable通过类名来屏蔽扫描。

    3.3、注解配置bean设置id

    利用xml管理bean时,我们可以手动设置bean的id;利用注解配置bean我们即有默认id、又可以手动设置。

    1、默认id

    利用注解设置bean时,如果没有手动设置bean的id,那么就会使用默认id,默认id是类名的首字母小写

    2、通过注解的value值来设置id

    在这里插入图片描述

    3.4、注解实现自动装配

    相比于xml的自动装配,基于注解的自动装配相对简单,只需要在对应位置加上@Autowired注解即可。@Autowired注解可以加在三个地方:

    1. 对应的属性上面。
    2. 对应属性的set方法上面。
    3. 含对应属性的有参构造上面。

    上面我们提到,自动装配有两种方式,ByType和ByName。@Autowired注解默认是ByType方式,当ByType找不到对应的bean时自动转换成ByName(默认通过属性名的首字母小写来查找)。

    若以上两种情况都找不到bean可以通过@Qualifier(“”)注解来指定id来查找对应的bean。

  • 相关阅读:
    1080 Graduate Admission
    taro vue3 ts nut-ui 项目
    b站黑马JavaScript的Ajax案例代码——图书管理案例
    HTML和CSS
    JUC源码学习笔记4——原子类,CAS,Volatile内存屏障,缓存伪共享与UnSafe相关方法
    零基础自学SQL课程 | SQL中的日期函数大全
    5.1获取物理内存容量
    PGL图学习之图神经网络GraphSAGE、GIN图采样算法[系列七]
    ECU标定知多少
    数据库1-数据库基本介绍
  • 原文地址:https://blog.csdn.net/weixin_48312484/article/details/126381234