【Spring】基于注解管理bean

基于注解管理bean,只需要在需要管理的bean上面加上注解就好了,不需要在xml文件里面一个一个去配置。使用起来比较方便。但是当我们想要使用一个外部的bean,比如配置数据库连接池datasource就必须用xml进行配置了。

一、注解和扫描

注解+扫描 ==》 使得bean可以被IOC容器管理。
a、注解
和 XML 配置文件一样,注解本身并不能执行,注解本身仅仅只是做一个标记,具体的功能是框架检测到注解标记的位置,然后针对这个位置按照注解标记的功能来执行具体操作。
本质:所有一切的操作都是Java代码来完成的,XML和注解只是告诉框架中的Java代码如何执行。
常用的四种注解

名称作用
@Component标记为普通组件
@Controller标记为控制层
@Service标记为业务层
@Repository标记为持久层

以@controller为例,查看源码:
在这里插入图片描述内部使用的都是@Component 。所以只是名字不同的标记而已,为了方便程序员使用,才这样写的。

b、扫描
Spring 为了知道程序员在哪些地方标记了什么注解,就需要通过扫描的方式,来进行检测。然后根据注解进行后续操作。
context:component-scan
排除扫描

 <context:component-scan base-package="com.lucky.spring">
        <!-- 排除controlor注解的类-->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

包含扫描
注意事项use-default-filters选项设置成false,这样才可以使用
在这里插入图片描述可以设置多个包含也可以多个排除,但是不能同时用;
排除用的比较多。

二、注解情况下对应beanId

默认情况类的小驼峰

  • userController

也可以使用注解的时候指定

@Controller("name")
public class UserController {
}

三、基于注解的自动装配

  • @Autowire 注解
    在成员变量上直接标记@Autowired注解即可完成自动装配,不需要提供setXxx()方法。

  • 使用位置:
    1、成员变量
    2、setter方法
    3、有参构造函数

  • 原理
    在这里插入图片描述
    @Qualifier(“service”)注解,指定当前注入bean的id。

@Autowired
@Qualifier("service")
private IUserService userService;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值