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

  • 相关阅读:
    存储过程加密
    sql 指删除表,改表名,改字段名
    windows 2003 server 64 位 IIS 6下部署 32位网站
    linux查看内存的使用占比
    linux查看端口是否被占用
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock' (2)
    mysql数据库的备份(mysqldump)和恢复(source)
    linux解压压缩文件zip/tar/tar.gz命令汇总
    oracle数据库的备份和导入数据
    oracle 备份表数据
  • 原文地址:https://www.cnblogs.com/hello-yz/p/11058315.html
Copyright © 2011-2022 走看看