一、SpringBoot基础[组件注册、条件注释、属性注释]

一、组件注册

解释:注册到Spring的应用程序上下文中,使它们能够被其他组件或者框架访问和使用

自己的类(doudou):

package com.gaodidi.Bean;

public class doudou {
    private String name;
    private String passwd;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }
}

注册:

package com.gaodidi.config;


import com.gaodidi.Bean.doudou;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyConfig {
    @Bean
    public doudou mydoudou(){
        return new doudou();
    }
}

查看效果:

package com.gaodidi;

import com.gaodidi.Bean.doudou;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Main {

    public static void main(String[] args) {

        var a = SpringApplication.run(Main.class,args);
        String bgm[] = a.getBeanNamesForType(doudou.class);
        for (String s : bgm) {
            System.out.println(s);
        }
    }
}

二、条件注释

温馨小贴士:如ConditionalOnClass()有多个可写的参数方法,在idea里面长按ctrl然后鼠标点击函数即可进去查看,值对应的类型

  1. @ConditionalOnClass(name="com.gaodidi.Bean.big"):当存在后面的name所指向的类(该类为自己写的或者引用的)时,下面的函数生效
  2. @ConditionalOnMissingClass("com.gaodidi.Bean.big"):当不存在后面的name所指向的类(该类为自己写的或者引用的)时,下面的函数生效
  3. @ConditionalOnBean(value = Cat.class):当存在注册到springboot里面类时,下面的函数生效
  4. @ConditionalOnMissingBean(value = Cat.class):当不存在注册到springboot里面类时,下面的函数生效

三、属性注释

解释:属性注释就是可以在application.properties里面写入自己的初始的赋值(例xiaobaobei对应下面的prefix)
格式:

xiaobaobei.name="你好"
xiaobaobei.passwd="不好"

@ConfigurationProperties(prefix = "xiaobaobei") :用于获取配置文件中的属性值,当应用启动时,Spring Boot会自动将配置文件中相应的属性值注入到被@ConfigurationProperties注解标记的类中

@ConfigurationProperties(prefix = "xiaobaobei")
public class doudou {
    private String name;
    private String passwd;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }

    @Override
    public String toString() {
        return "doudou{" +
                "name='" + name + '\'' +
                ", passwd='" + passwd + '\'' +
                '}';
    }
}

@EnableConfigurationProperties(big.class) :主要用于导入外来的含有@ConfigurationProperties的包,因为它会直接让含有@ConfigurationProperties的包注册上(用法:写在配置类外面)

@Configuration
@EnableConfigurationProperties(big.class) //主要用于导入外来的含有@ConfigurationProperties的包,因为它会直接让含有@ConfigurationProperties的包注册上
public class MyConfig {
    @Bean

    public doudou mydoudou(){
        return new doudou();
    }
}

你可能感兴趣的:(spring,boot,java,spring)