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 是实际工作中 ...
随机推荐
- Vue部分知识
一.本尊建议的学习顺序:https://zhuanlan.zhihu.com/p/23134551(侵删) 二.安装: 1.安装 Node.js,可以去Node.js的官网上下载: 2.(非必选)如果 ...
- Jquery 日期差函数 修改 对火狐进行兼容
function DateDiff(sDate1, sDate2) { //sDate1和sDate2是yyyy-MM-dd格式 var aDate, oDate1, oDate2, iDays; a ...
- LR脚本中常用函数使用介绍
1.变量和参数的设置 //将IP地址和端口放入到参数中lr_save_string("192.168.1.133:8081","ip"); //计算变量数组的元 ...
- python之删除指定目录指定日期下的日志文件
#=======================================================================================20190521以下脚本 ...
- Web端 年月日下拉表 密码判断 按钮判断是否提交
生日: <asp:DropDownList ID="selYear" runat="server"></asp:DropDownList> ...
- 【LeetCode】9 Palindrome Number 回文数判定
题目: Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could neg ...
- jsp另外五大内置对象之response-操作重定向
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...
- Cesium左右立体视觉续篇——遗留问题(渲染错误)以及临时替代方案
遗留问题详细说明 已解决部分 立体视觉中的视差: 横向渲染压缩. 遗留问题 1.左右分屏中的部分地图切片未渲染 问题描述:如下图(图片为解决问题后的图片),红色区域会显示黑色,无法正常显示影像.2.相 ...
- opencv将rgb图像转换成灰度图
python写法: import cv2 img = cv2.imread(img_dir, cv2.IMREAD_GRAYSCALE) cv2.imwrite(dis_dir, img) imrea ...
- @Param注解在dao层的使用
有时在前台用ajax传过来许多参数,不知道在mybatis如何封装,就要用到@Param注解了,这时就不需要在映射文件写传入参数了,这种方法虽然比较取巧,但还是很实用的,如下图: