springboot自定义starter 版本大于2.7

相关jar包

        <!--提示配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>3.2.1</version>
        </dependency>
        <!--自动配置注解-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>3.2.1</version>
        </dependency>

项目模块

freedom-springboot-starter模块

实体配置类

@ConfigurationProperties(prefix = "freedom")
public class MyProperties {

    private String name ;
    private int age ;
    private String address ;

    public String getName () {
        return name;
    }

    public int getAge () {
        return age;
    }

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

    public void setAge (int age) {
        this.age = age;
    }

    public String getAddress () {
        return address;
    }

    public void setAddress (String address) {
        this.address = address;
    }
}

config配置

@Configuration
@EnableConfigurationProperties(value = MyProperties.class)
public class FreedomConfig {


    private final MyProperties myProperties ;

    public FreedomConfig (MyProperties myProperties) {
        this.myProperties = myProperties;
    }

    @Bean
    public DemoService initBean(){
        System.out.println("myProperties = " + myProperties.getName());
        return new DemoService(myProperties);
    }
}

service注入类

public class DemoService {

    private MyProperties myProperties ;

    public DemoService (MyProperties myProperties) {
        this.myProperties = myProperties;
    }


    public String getName(){
        return myProperties.getName();
    }
}

自动配置

resources包下
META_INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

加入需要配置的配置类

springboot-starter-test模块

>在test中测试引用
    public static void main (String[] args) {
        ConfigurableApplicationContext run = SpringApplication.run(SpringbootStarterTestApplication.class,args);
        DemoService bean = run.getBean(DemoService.class);
        String name = bean.getName();
        System.out.println("name = " + name);

    }

yml文件配置

posted @ 2024-02-12 21:18  freedomlog  阅读(22)  评论(0编辑  收藏  举报