SpringBoot(6)自动配置 - Condition

本文详细介绍了SpringBoot中的自动配置原理,通过Condition条件注解实现Bean对象的有条件创建。文章通过三个需求案例,逐步讲解如何根据是否引入特定依赖(如Jedis、fastjson)以及配置文件内容来决定Bean的加载。读者将了解到如何自定义条件注解及条件判断逻辑,以实现灵活的Bean管理。
摘要由CSDN通过智能技术生成

SpringBoot(6)自动配置 - Condition

1. Condition 概述

Condition 是在 Spring4.0 增加的条件判断功能,通过这个功能可以实现选择性的创建 Bean 操作。

2. 测试创建 Bean 对象

2.1 创建新模块

直接使用 Spring Initializer 创建,起步依赖只使用 lombok,命名为 springboot-condition。

2.2 引入 Redis 依赖

pom.xml 文件中添加 Redis 的起步依赖。

  <!--Redis 依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

2.3 修改主类

修改 SpringbootConditionApplication 类的代码如下:

package com.xuxumiao;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class SpingbootConditionApplication {
   

    public static void main(String[] args) {
   
        //启动 SpringBoot 应用,返回 Spring 的 IOC 容器
        ConfigurableApplicationContext context = SpringApplication.run(SpingbootConditionApplication.class, args);

        //获取 Bean,RedisTemplate
        Object redisTemplate = context.getBean("redisTemplate");
        System.out.println(redisTemplate);
    }


}

2.4 运行

运行这个主类,控制台输出如下:

org.springframework.data.redis.core.RedisTemplate@608bc8f8

发现 Bean 对象已被成功创建

3. 测试 2.0

3.1 创建实体类

创建一个 domain 包,里面添加实体类 User

3.2 创建配置类

创建一个 config 包,里面添加实体类 UserConfig ,代码如下:

package com.xuxumiao.config;

import com.xuxumiao.domain.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author: xxm
 * @Date: 2022/2/7 12:35
 */
@Configuration
public class UserConfig {
   

    @Bean
    public User user(){
   
        return new User();
    }
}

3.3 修改主类

将前一部分的代码注释掉,新增一段代码:

package com.xuxumiao;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值