其他分享
首页 > 其他分享> > SpringBoot_底层注解

SpringBoot_底层注解

作者:互联网

1.Configuration
2.Import
3.Conditional条件转配
4.ImportResource
5.ConfigurationProperties

文章目录

1.Configuration

这个注解标识在类上面表示这个类是配置类

配置类 = 配置文件

和Spring一样的注解,都是可以将配置文件用注解来使用

@Configuration
@ImportResource("classpath:bean1.xml")
//@ConditionalOnBean(name = "user01")//有user01这个bean才注册下面的
//@ConditionalOnMissingBean(name = "user01")//除了user01这个bean没有的话才注册
public class MainConfig {
    @ConditionalOnBean(name = "tom")//有tom这个bean才注册下面的方法
    @Bean("user01")
    public User user(){
        return new User("Zzz", 33);
    }
}

比如这个MainConfig.java类中就是表示的有@Configuration注解,表示这个是一个配置类。

下面的@Bean相当于在容器中注册了一个user01的组件。

配置类相当于配置文件bean.xml

在这里插入图片描述

2.Import

@Import注解显而易见就是在外部引入bean,和Spring注解一样
给容器中自动配置组件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

说明在容器中注册了Person的组件

3.Conditional条件转配

通过某个条件来自动装配
这个注解可以标注在方法和类上

在这里插入图片描述

比如

@Import({User.class, Person.class})
@Configuration
@ImportResource("classpath:bean1.xml")
//@ConditionalOnBean(name = "user01")//有user01这个bean才注册下面的
//@ConditionalOnMissingBean(name = "user01")//除了user01这个bean没有的话才注册
public class MainConfig {
    @ConditionalOnBean(name = "tom")//有tom这个bean才注册下面的方法
    @Bean("user01")
    public User user(){
        return new User("Zzz", 33);
    }
}

表示如果有tom这个bean的组件才装配下面的user的组件

在这里插入图片描述
在这里插入图片描述

4.ImportResource

引入外部文件比如bean1.xml
在bean1.xml中有注册组件

bean1.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean class="com.atguigu.boot.bean.User" id="user">
        <property name="name" value="Zzz"></property>
    </bean>
</beans>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.ConfigurationProperties

5.1 @Component + @ConfigurationProperties

javabean上面添加的注解

@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String username;
    private String password;

    public Person() {
    }

    public Person(String username, String password) {
        this.username = username;
        this.password = password;
    }

    @Override
    public String toString() {
        return "Person{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

在这里插入图片描述
在这里插入图片描述

    @Autowired
    Person person;
    @RequestMapping("/person")
    public Person person(){
        return person;
    }

在这里插入图片描述

5.2 @EnableConfigurationProperties + @ConfigurationProperties

EnableConfigurationProperties 作用:
1.开启Person属性配置功能
2.把Person这个组件自动注册到容器中
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

标签:username,SpringBoot,Person,bean,注解,password,public,user01,底层
来源: https://blog.csdn.net/qq_43141726/article/details/117284823