管理第三方的Bean

1. 手动管理

配置的bean,像controllerservicedao三层体系下编写的类,这些类都是我们在项目当中自己定义的类(自定义类)。当我们要声明这些bean,也非常简单,我们只需要在类上加上@Component以及它的这三个衍生注解(@Controller@Service@Repository),就可以来声明这个bean对象了。

但是在我们项目开发当中,还有一种情况就是这个类它不是我们自己编写的,而是我们引入的第三方依赖当中提供的。

第三方提供的类是只读的。无法在第三方类上添加@Component注解或衍生注解。

对于非项目内定义的第三方类,无法通过 @Component 等注解将其直接声明为 Bean。需要使用 @Bean 注解来将这些第三方类引入 IOC 容器中。

如果需要定义第三方Bean时, 通常会单独定义一个配置类:

@Configuration //配置类 (在配置类当中对第三方bean进行集中的配置管理)
public class CommonConfig {
    //声明第三方bean
    @Bean //将当前方法的返回值对象交给IOC容器管理, 成为IOC容器bean
    //通过@Bean注解的name/value属性指定bean名称, 如果未指定, 默认是方法名
    public SAXReader reader(DeptService deptService){
        System.out.println(deptService);
        return new SAXReader();
     }
}

在方法上加上一个@Bean注解,Spring 容器在启动的时候,它会自动的调用这个方法,并将方法的返回值声明为Spring容器当中的Bean对象。

注意事项 :

(1)通过@Bean注解的namevalue属性可以声明bean的名称,如果不指定,默认bean的名称 就是方法名。

(2)如果第三方bean需要依赖其它bean对象,直接在bean定义方法中设置形参即可,容器会根 据类型自动装配。

2. 自定义起步依赖

所谓starter指的就是SpringBoot当中的起步依赖。在SpringBoot当中已经给我们提供了很多的起 步依赖了,我们为什么还需要自定义 starter 起步依赖?这是因为在实际的项目开发当中,我们可能 会用到很多第三方的技术,并不是所有的第三方的技术官方都给我们提供了与SpringBoot整合的 starter起步依赖,但是这些技术又非常的通用。

SpringBoot官方starter命名: spring-boot-starter-xxxx

第三组织提供的starter命名: xxxx-spring-boot-starter

在自定义一个起步依赖starter的时候,按照规范需要定义两个模块:

1. starter模块(进行依赖管理[把程序开发所需要的依赖都定义在starter起步依赖中]

2. autoconfigure模块(自动配置)

将来在项目当中进行相关功能开发时,只需要引入一个起步依赖就可以了,因为它会将 autoconfigure自动配置的依赖给传递下来。

实现步骤:

1步:创建自定义starter模块(进行依赖管理)

所有的依赖统一管理起来

2步:创建autoconfigure模块

starter中引入autoconfigure (我们使用时只需要引入starter起步依赖即可)

3步:在autoconfigure中完成自动配置

1. 定义一个自动配置类,在自动配置类中将所要配置的bean都提前配置好

2. 定义配置文件,把自动配置类的全类名定义在配置文件中

在后续项目使用中,只需引入这个起步依赖,会自动配置,管理所有的Bean,使用时直接注入即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyt涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值