底层注解
@Configuration

自定义配置类
 @Bean:
 可以通过@Bean注解将方法的返回值交给ioc容器来管理
 组件id为方法名,组件的类型就是方法的返回类型。
 默认组件是单例的
 @Configuration:
 告诉springboot这是一个配置类==之前的配置文件
 配置类本身也是组件,由springioc管理
 @Configuration(proxyBeanMethods = true)
 表示代理对象调用方法,springboot会检查这个配置类中的组件是否在容器中,来保持组件单例
@Import
向ioc容器中添加组件,默认名字就是全类名
启动类中测试代码:
@SpringBootApplication
public class SpringbootLearn01Application {
    public static void main(String[] args) {
        //获取IOC容器
        ConfigurableApplicationContext run = SpringApplication.run(SpringbootLearn01Application.class, args);
        String[] beanNamesForType = run.getBeanNamesForType(User.class);
        for(String e:beanNamesForType)
        {
            System.out.println(e);
        }
    }
}

 第一个就是@import添加的组件,第二个是通过@Bean向ioc中添加的组件
Conditional
条件装配:满足Conditional指定的条件,则进行组件注入
@ImportResource
导入spring配置文件,使其生效
@ImportResource("applicationContext.xml")
配置绑定@ConfigurationProperties
使用@ConfigurationProperties(prefix = “xxx”)来进行配置绑定的时候要确保bean在容器中,可以通过在实体类上添加@Component或者在配置文件中@EnableConfigurationProperties(类.class)
 yml中:
 
第一种@Component+ConfigurationProperties(prefix = “Car”)
Car类:
package com.mao.exercise.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@ConfigurationProperties(prefix = "car")
public class Car {
    private String id;
    private String name;
    private double price;
}
测试:
 
第二种@EnableConfigurationProperties(Car.class)+ConfigurationProperties(prefix = “Car”)
Car类
 
 配置文件:
 












![[前端笔记] 1.WEB基本概念](https://img-blog.csdnimg.cn/82d7df4ff0b2451b9cb26c015f7ce2cb.png)






