zoukankan      html  css  js  c++  java
  • 创建自己的Spring Boot Starter

    抽取通用模块作为项目的一个spring boot starter。可参照mybatis的写法。

    IDEA创建Empty Project并添加如下2个module,一个基本maven模块,另一个引入spring-boot-starter依赖。

    1) xxx-spring-boot-starter - 引入依赖并管理依赖版本

    demo-spring-boot-starter

        <dependencies>
            <dependency>
                <groupId>org.chris</groupId>
                <artifactId>demo-spring-boot-autoconfigure</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
        </dependencies>

    2) xxx-spring-boot-autoconfigure - xxx的自动配置类

     demo-spring-boot-autoconfigure

        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
        </dependencies>
    属性类DemoProperties
    @ConfigurationProperties(prefix = "chris.demo")
    public class DemoProperties {
        private String name;
        private String content;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getContent() {
            return content;
        }
    
        public void setContent(String content) {
            this.content = content;
        }
    }

      功能类DemoService

    public class DemoService {
    
        private DemoProperties demoProperties;
    
        public DemoProperties getDemoProperties() {
            return demoProperties;
        }
    
        public void setDemoProperties(DemoProperties demoProperties) {
            this.demoProperties = demoProperties;
        }
    
        public String demoShow(){
            return this.demoProperties.getName() + " ----- " + this.demoProperties.getContent();
        }
    }

    自动配置类DemoAutoConfiguration

    @Configuration
    @ConditionalOnWebApplication
    @EnableConfigurationProperties(DemoProperties.class)
    public class DemoAutoConfiguration {
    
        @Autowired
        private DemoProperties demoProperties;
    
        @Bean
        public DemoService demoService(){
            DemoService demoService = new DemoService();
            demoService.setDemoProperties(demoProperties);
            return demoService;
        }
    }

    最后添加DemoAutoConfiguration到EnableAutoConfiguration中

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=
    org.chris.springboot.DemoAutoConfiguration

    在新的spring boot项目中如果需要引用以上starter,只需要在依赖中添加如下,

            <dependency>
                <groupId>org.chris</groupId>
                <artifactId>demo-spring-boot-starter</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>

    测试类DemoController

    @RestController
    public class DemoController {
    
        @Autowired
        private DemoService demoService;
    
        @GetMapping("demo")
        public String demo(){
            return demoService.demoShow();
        }
    }

    附上代码

    demo-starter, demo

  • 相关阅读:
    Mysql Explain 详解
    linux常用命令笔记
    chrome的全局搜索快捷键
    蒋介石如何能够强大的北洋军阀对战?(北洋军阀一盘散沙,以添油战术应对,所以完全失败;北伐军主次应对得到,后期实力大增)
    千万大军剑拔弩张 1945年的美苏两军谁是霸主?(苏联陆军强大,但国力远远不是美国的对手。微信号:熊熊点兵)
    C/C++语言中闭包的探究及比较
    HTTP RFC7230
    Oracle
    c#与oracle数据库连接池
    net平台下连接池
  • 原文地址:https://www.cnblogs.com/hello-yz/p/11058315.html
Copyright © 2011-2022 走看看