自定义starter

作者: ML李嘉图


目录

  • [说明]
  • [编写启动器]
  • [新建项目测试们自己写的启动器]


分析完毕了源码以及自动装配的过程,可以尝试自定义一个启动器来玩玩! 自动装配的过程 SpringBoot-静态资源加载-源码 SpringBoot-Web-初见

说明

启动器模块是一个 空 jar 文件,仅提供辅助性依赖管理,这些依赖可能用于自动装配或者其他类库; 命名归约:

官方命名:

  • 前缀:spring-boot-starter-xxx
  • 比如:spring-boot-starter-web….

自定义命名:

  • xxx-spring-boot-starter
  • 比如:mybatis-spring-boot-starter

编写启动器

1、在们的 starter 中 导入 autoconfigure 的依赖!

<!-- 启动器 -->
<dependencies>
    <!--  引入自动配置模块 -->
    <dependency>
        <groupId>com.kuang</groupId>
        <artifactId>kuang-spring-boot-starter-autoconfigure</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
</dependencies>

2、将 autoconfigure 项目下多余的文件都删掉,Pom中只留下一个 starter,这是所有的启动器基本配置! 3、们编写一个自己的服务

public class HelloService {
    HelloProperties helloProperties;
    public HelloProperties getHelloProperties() {
        return helloProperties;
    }
    public void setHelloProperties(HelloProperties helloProperties) {
        this.helloProperties = helloProperties;
    }
    public String sayHello(String name){
        return helloProperties.getPrefix() + name + helloProperties.getSuffix();
    }
}

4、编写HelloProperties 配置类

// 前缀 zwt.hello
@ConfigurationProperties(prefix = "zwt.hello")
public class HelloProperties {
    private String prefix;
    private String suffix;
    public String getPrefix() {
        return prefix;
    }
    public void setPrefix(String prefix) {
        this.prefix = prefix;
    }
    public String getSuffix() {
        return suffix;
    }
    public void setSuffix(String suffix) {
        this.suffix = suffix;
    }
}

5、编写们的自动配置类并注入bean,测试!

@Configuration
@ConditionalOnWebApplication //web应用生效
@EnableConfigurationProperties(HelloProperties.class)
public class HelloServiceAutoConfiguration {
    @Autowired
    HelloProperties helloProperties;
    @Bean
    public HelloService helloService(){
        HelloService service = new HelloService();
        service.setHelloProperties(helloProperties);
        return service;
    }
}

6、在resources编写一个自己的 META-INF\spring.factories

 Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.zwt.HelloServiceAutoConfiguration

7、编写完成后,可以安装到maven仓库中! (install)

新建项目测试们自己写的启动器

1、新建一个SpringBoot 项目 2、导入们自己写的启动器

<dependency>
    <groupId>com.zwt</groupId>
    <artifactId>kuang-spring-boot-starter</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

3、编写一个 HelloController 进行测试们自己的写的接口!

@RestController
public class HelloController {
    @Autowired
    HelloService helloService;
    @RequestMapping("/hello")
    public String hello(){
        return helloService.sayHello("zxc");
    }
}

4、编写配置文件 application.properties

zwt.hello.prefix="ppp"
zwt.hello.suffix="sss"

原文创作:ML李嘉图

原文链接:https://www.cnblogs.com/zwtblog/p/15187087.html

文章列表

更多推荐

更多
  • Ansible2安全自动化-十、编写安全测试的 Ansible 模块 开始使用 hello world Ansible 模块,密码,建立开发环境,计划和要记住的内容,OWASP ZAP 模块,使用 Docker 创建 ZAP,创建易受攻击的应用,Ansible 模块模板,[计]元数据,记录模块,源代码模板
    Apache CN

  • Ansible2安全自动化-十一、可靠的安全最佳实践、参考和进一步阅读 十一、可靠的安全最佳实践、参考和进一步使用 Ansible 的保管库,如何对变量和文件使用 Ansible Vault,Ansible Vault 单一加密变量,Ansible 拱顶在 Ansible 塔中的应用,设置和使用可扫描集群,
    Apache CN

  • Ansible2安全自动化-九、用于取证收集和恶意软件分析的自动化实验室设置 为隔离环境的实验室创建可行的行动手册,收集文件和域恶意软件识别和分类,病毒总应用编程接口工具设置,病毒总应用编程接口扫描恶意软件样本,设置布谷鸟沙盒环境,设置布谷鸟主机,设置布谷鸟客人,使用 Ansible 行动手册提交样品和报告,使用
    Apache CN

  • Ansible2安全自动化-八、Docker 容器的持续安全扫描 理解连续安全概念,使用 Ansible 自动化 Docker 容器的漏洞评估,安全 Docker 工作台,克莱尔,为了 Docker 安全,使用 Ansible Tower 进行计划扫描,锚,锚定的引擎服务设置,锚定 cli 扫描仪,使
    Apache CN

  • Ansible2安全自动化-四、日志监控和无服务器自动防御(AWS 中的弹性栈) 四、日志监控和无服务器自动防御AWS 中的弹性栈弹性叠层介绍,弹性搜索,logstash(日志记录),马纳人,搜索,我们为什么要使用弹性栈进行安全监控和警报?,设置弹性栈的先决条件,设置弹性栈,Logstash 集成,马纳人,弹性纤维,
    Apache CN

  • Ansible2安全自动化-五、使用 OWASP ZAP 实现网络应用安全测试自动化 安装 OWASP ZAP,安装 Docker 运行时,OWASP ZAP 坞站容器设置,处理容器的专用工具——Ansible 容器,配置 ZAP 基线扫描,运行易受攻击的应用容器,运行 OWASP 扫描程序基线扫描,针对网络应用和网站的
    Apache CN

  • Ansible2安全自动化-六、利用 Nessus 进行漏洞扫描 尼斯介绍,安装 Nessus 进行漏洞评估,配置 Nessus 进行漏洞扫描,对网络执行扫描,基本网络扫描,使用自动扫描运行扫描,设置自动用户,使用自动扫描运行扫描,列出当前可用的扫描和标识,使用扫描标识启动指定的扫描,存储结果,安装
    Apache CN

  • Ansible2安全自动化-七、应用和网络的安全强化 使用 CIS、STIGs 和 NIST 等基准强化安全性,使用 Ansible 行动手册强化基线操作系统,STIGs 在 Linux 主机自动安全强化方面的可替代角色,使用 Ansible Tower 对 OpenSCAP 进行持续的安
    Apache CN

  • Ansible2安全自动化-三、使用加密自动备份设置加固 WordPress WordPress 命令行界面,为什么要为这种设置负责?,一个完整的 WordPress 安装步骤,正在设置 nginx web 服务器,设置先决条件,建立 MySQL 数据库,为 WordPress 安装程序安装 PHP,使用命令行界
    Apache CN

  • Ansible2安全自动化-二、Ansible Tower、Jenkins 和其他自动化工具 调度工具支持自动化的下一个抽象,起床跑步,设置可平移的塔,设置 Jenkins,设置运行平台,安全自动化用例,添加行动手册,Ansible 的塔式配置,Jenkins Ansible 集成配置,运行平台配置,认证和数据安全,RBAC 代
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多