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 是实际工作中 ...
随机推荐
- 时间日期相关:Date类、DateFormat类、Calendar类
1 Date类 类 Date 表示特定的瞬间,精确到毫秒. 1秒=1000毫秒 毫秒的0点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0 时间和日期的计算,必须依赖毫秒值. Sys ...
- ThreadLocal(关于struts2的ThreadLocal,实际上Jdk1.2就有了)
ThreadLocal是通过在不同线程中操作变量的副本,来达到线程安全的目的,是用空间资源换时间资源的方式.今天在看struts2源码的时候,发现ActionContext中,就持有一个静态的Thre ...
- android :fragmentation使用中遇到的 NullPointerException
背景:fragmentation(单ACTIVITY+多个fragments)+brvah( recyclerView多级自定义菜单功能) 目的:实现 菜单栏的点击,fragment 显示相应的内 ...
- 初识ProgressBar
Android FormWidget之一 实现起来很简单,大体有两种style. 怎么自定义ProgressBar? 有两种方法,一种是运用android:progressDrawable=" ...
- (转载)资源字典(Pro WPF 学习)
原地址:http://www.cnblogs.com/yxhq/archive/2012/07/09/2582508.html 1.创建资源字典 下面是一个资源字典(AppBrushes.xaml), ...
- 如何从桌面程序向浏览器传递cookie或自定义header
类似问题 从c#程序启动ie并传递cookie 打开默认浏览器并传递cookie 打开一个web浏览器使用c#应用程序并添加请求头 猜想 从wpf程序打开默认浏览器并定位到一个url ,并且向这个ur ...
- 不写画面的网页程序设计,Web API、Web Service、WCF Service
客户有一个系统,经常要连上我方,查询数据 以前的作法是给对方一个账号,让他可以连上我们的DB来查询. 所以,早期的同仁,真的给他们DB链接字符串 客户的Windows程序.网站就真的靠这么危险的方式, ...
- 卓越管理的秘密(Behind Closed Doors)
或许提到本书甚至本书的作者Johanna Rothman我们会感到些许陌生,那么提起她的另一本获得素有软件界奥斯卡之称的Jolt生产效率大奖的名著<项目管理修炼之道>,会不会惊讶的发现,原 ...
- (六)VMware Harbor简单使用
VMware Harbor简单使用 1. 登陆: [用户:admin , 密码:Harbor12345]配置文件里设置的 登陆后的界面: 2. 用户管理: 2.1 新近用户 3. 仓库管理: 3.1 ...
- npm模块安装机制简介
npm是node的模块管理器,功能及其强大,它是node获得成功的重要原因之一. 正因为有了nom,我们只要一行命令,就能安装别人写好的模块. $ npm install 本文介绍npm模块安装机制的 ...