美文网首页
@Configuration+@ConfigurationPro

@Configuration+@ConfigurationPro

作者: 是阿胖胖吖 | 来源:发表于2020-03-04 11:13 被阅读0次

     @Configuration+@ConfigurationProperties+@EnableConfigurationProperties

    最佳设计方案(现在又改板了):

    Bean上面直接设置@ConfigurationProperties

    //需要依赖spring-boot-configuration-processor

    @ConfigurationProperties(prefix = "stu")

    public class Stu {

        String name;

        public Stu(String name) {

            this.name = name;

        }

        public Stu() {

        }

        public String getName() {

            return name;

        }

        public void setName(String name) {

            this.name = name;

        }

        @Override

        public String toString() {

            return "Stu{" +

                    "name='" + name + '\'' +

                    '}';

        }

    }

    方式一:configuration上面跟随@EnableConfigurationProperties【这种情况只有configuration里面一个Bean 】

    @Configuration

    @EnableConfigurationProperties

    public class StuConfiguration {

        @Bean

        public Stu stu(){

            return  new Stu();

        }

    }

    方式二:configuration上面跟随@EnableConfigurationProperties【这种情况只有configuration里面一个Bean 】

    package com.example.demo11.configuration;

    import com.example.demo11.entity.Stu;

    import org.springframework.boot.context.properties.EnableConfigurationProperties;

    import org.springframework.context.annotation.Bean;

    import org.springframework.context.annotation.Configuration;

    @Configuration

    //@EnableConfigurationProperties(Stu.class),如果携带class参数则有用注册Bean的能力,

    //因为实现了ImportBeanDefinitionRegistrar接口,Import三插之一

    //这里的Bean名称非常有意思【类型名称+全包名】

    @EnableConfigurationProperties(Stu.class)

    public class StuConfiguration {

        @Bean

        public Stu stu2(){

            return  new Stu();

        }

    }

    启动查看

    @SpringBootApplication

    public class Demo11Application {

        public static void main(String[] args) {

            ConfigurableApplicationContext context = SpringApplication.run(Demo11Application.class, args);

            Stu stu = context.getBean("stu-com.example.demo11.entity.Stu", Stu.class);

            System.out.println(context.getBeansOfType(Stu.class).size());

            System.out.println(stu.toString());

            context.close();

        }

    }

    相关文章

      网友评论

          本文标题:@Configuration+@ConfigurationPro

          本文链接:https://www.haomeiwen.com/subject/hqkmlhtx.html