Spring-Boot自定义Starter实践
此文已由作者王慎为授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
disconf-spring-boot-starter
使用方法:
引入maven依赖:
<dependency>
<groupId>com.netease.haitao.sc</groupId>
<artifactId>disconf-spring-boot-starter</artifactId>
<version>1.0.1</version></dependency>
在application.properties中按照实际配置定义如下字段
#disconf zk地址
disconf.zkHost=10.122.137.135:2181,10.164.166.201:2181,10.164.166.200:2181,10.164.166.199:2181
#disconf环境
disconf.env=online
#disconf申请的分组
disconf.groupName=sc_jxc_front_config
代码中可以直接使用@Resource的方式注入ConfigService Bean。
@Resource
private ConfigService configService;
实现代码片段

引入maven依赖:
<dependency>
<groupId>com.netease.haitao.sc</groupId>
<artifactId>disconf-spring-boot-starter</artifactId>
<version>1.0.1</version></dependency>
在application.properties中按照实际配置定义如下字段
#disconf zk地址
disconf.zkHost=10.122.137.135:2181,10.164.166.201:2181,10.164.166.200:2181,10.164.166.199:2181
#disconf环境
disconf.env=online
#disconf申请的分组
disconf.groupName=sc_jxc_front_config
代码中可以直接使用@Resource的方式注入ConfigService Bean。
@Resource
private ConfigService configService;
实现代码片段
kschedule-spring-boot-starter
引入maven依赖:
<dependency>
<groupId>com.netease.haitao.sc</groupId>
<artifactId>kschedule-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
在application.properties中按照实际配置定义如下字段
#kschedule ZK 地址
kschedule.zkConnectUrl=10.164.166.75:2181,10.122.137.110:2181,10.122.137.109:2181
#kschedule 分组
kschedule.groupName=sc-jxc-front
代码中无需多额外的配置,只需在kschedule平台上定义需要执行的方法即可。
实现代码片段

引入maven依赖:
<dependency>
<groupId>com.netease.haitao.sc</groupId>
<artifactId>kschedule-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
在application.properties中按照实际配置定义如下字段
#kschedule ZK 地址
kschedule.zkConnectUrl=10.164.166.75:2181,10.122.137.110:2181,10.122.137.109:2181
#kschedule 分组
kschedule.groupName=sc-jxc-front
代码中无需多额外的配置,只需在kschedule平台上定义需要执行的方法即可。
实现代码片段
nos-spring-boot-starter
引入maven依赖:
<dependency>
<groupId>com.netease.haitao.sc</groupId>
<artifactId>nos-spring-boot-starter</artifactId>
<version>1.0.0</version></dependency>
在application.properties中按照实际配置定义如下字段
nos.accessKey=
nos.secretKey=
代码中可以直接使用@Resource的方式注入NosClient。
@Resource
private NosClient nosClient;
实现代码片段

引入maven依赖:
<dependency>
<groupId>com.netease.haitao.sc</groupId>
<artifactId>nos-spring-boot-starter</artifactId>
<version>1.0.0</version></dependency>
在application.properties中按照实际配置定义如下字段
nos.accessKey=
nos.secretKey=
代码中可以直接使用@Resource的方式注入NosClient。
@Resource
private NosClient nosClient;
实现代码片段
spring-boot-starter-dubbo
引入maven依赖(需要排除原生dubbo的依赖)。 原实现:https://github.com/dubbo/dubbo-spring-boot-project ,本实现在其基础上支持@Reference注解配置化
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.1-kaola-sc</version>
<exclusions>
<exclusion>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
</exclusion>
</exclusions></dependency>
在application.properties中按照实际配置定义如下字段
#dubbo需要扫描的包
spring.dubbo.scan=com.netease.haitao.jxc.front
#应用名称
spring.dubbo.application.name=sc-jxc-front
#环境
spring.dubbo.application.environment=product
#ZK地址
spring.dubbo.registry.address=zookeeper://kaola-zk1.dg.163.org:2181?backup=kaola-zk2.dg.163.org:2181,kaola-zk3.hz.163.org:2181,kaola-> zk4.hz.163.org:2181,kaola-zk5.yq.163.org:2181
#默认提供dubbo服务分组
spring.dubbo.provider.group=online
#默认提供的dubbo服务版本
spring.dubbo.provider.version=1.0
#服务端口
spring.dubbo.protocol.port=-1
#启动时依赖服务检查
spring.dubbo.consumer.check=false
#默认消费服务分组
spring.dubbo.consumer.group=online
#默认消费服务版本
spring.dubbo.consumer.version=1.0
代码中可以直接使用@Reference的方式注入依赖接口(允许自定义分组和版本),缺省情况下调用默认分组默认版本的服务。

引入maven依赖(需要排除原生dubbo的依赖)。 原实现:https://github.com/dubbo/dubbo-spring-boot-project ,本实现在其基础上支持@Reference注解配置化
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.1-kaola-sc</version>
<exclusions>
<exclusion>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
</exclusion>
</exclusions></dependency>
在application.properties中按照实际配置定义如下字段
#dubbo需要扫描的包
spring.dubbo.scan=com.netease.haitao.jxc.front
#应用名称
spring.dubbo.application.name=sc-jxc-front
#环境
spring.dubbo.application.environment=product
#ZK地址
spring.dubbo.registry.address=zookeeper://kaola-zk1.dg.163.org:2181?backup=kaola-zk2.dg.163.org:2181,kaola-zk3.hz.163.org:2181,kaola-> zk4.hz.163.org:2181,kaola-zk5.yq.163.org:2181
#默认提供dubbo服务分组
spring.dubbo.provider.group=online
#默认提供的dubbo服务版本
spring.dubbo.provider.version=1.0
#服务端口
spring.dubbo.protocol.port=-1
#启动时依赖服务检查
spring.dubbo.consumer.check=false
#默认消费服务分组
spring.dubbo.consumer.group=online
#默认消费服务版本
spring.dubbo.consumer.version=1.0
代码中可以直接使用@Reference的方式注入依赖接口(允许自定义分组和版本),缺省情况下调用默认分组默认版本的服务。
网易云免费体验馆,0成本体验20+款云产品!
更多网易技术、产品、运营经验分享请点击。
相关文章:
【推荐】 一些 ssh 小技巧
Spring-Boot自定义Starter实践的更多相关文章
- Spring Boot自定义starter必知必会条件
前言 在目前的Spring Boot框架中,不管是Spring Boot官方还是非官方,都提供了非常多的starter系列组件,助力开发者在企业应用中的开发,提升研发人员的工作效率,Spring Bo ...
- spring boot自定义starter
1.spring boot 项目中自定义jar包 2.项目目录 3.src/main/java 下面写自己的方法,重点是 resources 下面的文件,在resources下面新建文件夹名字为 ME ...
- Spring Boot 自定义 starter
一.简介 SpringBoot 最强大的功能就是把我们常用的场景抽取成了一个个starter(场景启动器),我们通过引入springboot 为我提供的这些场景启动器,我们再进行少量的配置就能使用相应 ...
- Spring boot 自定义starter
以下配置来自尚硅谷.. 常用如何配置 @Configuration //指定这个类是一个配置类 @ConditionalOnXXX //在指定条件成立的情况下自动配置类生效 @AutoConfigur ...
- Spring Boot 自定义Starter 可能引发的问题(Error)
如果你的项目出现: Consider defining a bean of type 'com.wy.helloworld_spring_boot_starter.PersonService' in ...
- 【串线篇】spring boot自定义starter
starter: 一.这个场景需要使用到的依赖是什么? 二.如何编写自动配置 启动器只用来做依赖导入:(启动器模块是一个空 JAR 文件,仅提供辅助性依赖管理,这些依赖可能用于自动装配或者其他类库) ...
- Spring Boot 自定义kafka 消费者配置 ContainerFactory最佳实践
Spring Boot 自定义kafka 消费者配置 ContainerFactory最佳实践 本篇博文主要提供一个在 SpringBoot 中自定义 kafka配置的实践,想象这样一个场景:你的系统 ...
- SpringBoot系列之自定义starter实践教程
SpringBoot系列之自定义starter实践教程 Springboot是有提供了很多starter的,starter翻译过来可以理解为场景启动器,所谓场景启动器配置了自动配置等等对应业务模块的一 ...
- spring boot自定义线程池以及异步处理
spring boot自定义线程池以及异步处理@Async:什么是线程池?线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务.线程池线程都是后台线程.每个线程都使 ...
- Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践 Spring Boot + Nginx + Mysql 是实际工作中 ...
随机推荐
- 【踩坑】spring每次请求后session不一样导致无法在服务器保存信息
根据网上的资料,若想在服务器用session保存一些信息,方法如下: public Xclass Xmethod(HttpServletRequest request, HttpSession ses ...
- BZOJ3004: 吊灯(结论 毒瘤)
题意 $n$个节点的树,判断能否划分成$\frac{n}{k}$个大小为$k$的联通块 Sol 首先$k$必须是$n$的倍数. 然后刚开始我就非常傻的以为输出所有约数就行了.. 但是图是这样,$k = ...
- C语言中的static和extern
c语言中,全局变量是一个非常重要的概念.全局变量定义在函数外,可以被所有的函数共同使用. #include <iostream> ; void display() { printf(&qu ...
- CentOS 7安装Docker服务详细过程
---恢复内容开始--- Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟 ...
- POJ 1185 炮兵阵地 (状压DP,轮廓线DP)
题意: 给一个n*m的矩阵,每个格子中有'P'或者'H',分别表示平地和高原,平地可以摆放大炮,而大炮的攻击范围在4个方向都是2格(除了自身位置),攻击范围内不能有其他炮,问最多能放多少个炮?(n&l ...
- 通过WMIC导出系统日志
查看日志类型 wmic nteventlog get filename C:\>wmic nteventlog get filename FileName appevent secevent s ...
- UVA 211 The Domino Effect 多米诺效应 (回溯)
骨牌无非两种放法,横着或竖着放,每次检查最r,c最小的没访问过的点即可.如果不能放就回溯. 最外面加一层认为已经访问过的位置,方便判断. #include<bits/stdc++.h> ; ...
- [课堂总结]C++课堂总结(二)
近期的面向对象程序设计的不容易记忆或者理解的东西进行一个总结,以后忘记了可以常来看下,C++是个很重要的东西,很多领域都用得到,加油,特种兵! 浅拷贝构造.深拷贝构造 浅拷贝构造是系统默认的拷贝构造函 ...
- 在axios中使用async await
最近在做树鱼的项目, 联想到 如果用 async await 怎么处理, export async function Test1() { return new Promise((resolve) =& ...
- HTML5 跨文档消息传输
对窗口对象的message事件进行监听 window.addEventListener("message", function(event) { // 处理程序代码 }, fals ...