SpringBoot封装自己的起动器的实现方法

  

  

我们在使用SpringBoot的时候常常要引入一些起动器,例如spring-boot-starter-web,官方为我们提供了几乎所有的默认配置,很好的降低了使用框架时的复杂度,所以在用xxx-starter的时候,可以不用费心去写一些繁琐的配置文件,即使必要的配置在application.properties或application.yml中配置就可以了,当你实现了一个启动器,可以在不同的项目中复用,非常方便,今天我们来编写自己的起动器以之前的短信业务为例。

  

Springboot短信业务调用:https://www.jb51.net/article/160092.htm

  

spring-boot-starter-xxx是官方提供起动器的命名规则,非官方起动器的命名规则官方建议为xxx-spring-boot-starter

  

  

建立SpringBoot项目,清除资源下的文件和文件夹

  

<人物>  SpringBoot封装自己的起动器的实现方法

  

Maven依赖如下:

        & lt; dependencies>   & lt; !——封装起动器核心依赖——比;   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter   & lt; version> 2.1.3.RELEASE   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-autoconfigure   & lt; version> 2.1.3.RELEASE   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-configuration-processor   & lt; version> 2.1.3.RELEASE   & lt;/dependency>   & lt; !——lombok插件——比;   & lt; dependency>   & lt; groupId> org.projectlombok   & lt; artifactId> lombok   & lt; version> 1.18.6   & lt; optional> true   & lt;/dependency>   & lt; !——因为要使用创建RestTemplate和转换Json,所以引入这两个依赖——比;   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-web   & lt; version> 2.1.3.RELEASE   & lt;/dependency>   & lt; dependency>   & lt; groupId> com.alibaba   & lt; artifactId> fastjson   & lt; version> 1.2.45   & lt;/dependency>   & lt;/dependencies>      

  

创建SendSMSDTO传输类,用于参数传递

     /* *   * SMSDTO参数类   * @Author无   * @CreateTime 2019/4/20   * @attention   */@ data   公开课SendSMSDTO {/* *   *模板ID   */私人字符串templateid;/* *   *参数   */私人字符串参数;/* *   *手机号   */私人字符串移动;/* *   *用户穿透ID,可以为空   */私人字符串uid;   }      

创建RestTemplateConfig配置类,用于调用短信接口

     /* *   * RestTemplateConfig配置   * @Author无   * @CreateTime 2019/4/20   * @attention   */@ configuration   公开课RestTemplateConfig {   @ bean   公众创建RestTemplate创建RestTemplate () {   返回新创建RestTemplate ();   }   }      

创建短信接口枚举类,用于存放短信接口API地址

     /* *   *短信请求API枚举   * @Author无   * @CreateTime 2019/4/20   * @attention   */@ getter   公共enum ENUM_SMSAPI_URL {   SENDSMS (“https://open.ucpaas.com/ol/sms/sendsms”),   SENDBATCHSMS (“https://open.ucpaas.com/ol/sms/sendsms_batch”);   私人字符串url;   ENUM_SMSAPI_URL(字符串url) {   这一点。url=url;   }   }      

  

创建SmsProperties配置属性类,该类主要用于读取yml/属性信息

     /* *   *短信配置属性类   * @Author无   * @CreateTime 2019/4/20   * @attention使用ConfigurationProperties注解可将配置文件(yml/属性)中指定前缀的配置转为bean   */@ data   @ConfigurationProperties(前缀=皊ms-config”)   公开课SmsProperties {   私人字符串appid;   私人字符串accountSid;   私人字符串authToken;   }      

创建短信核心服务类

     /* *   *短信核心服务类   * @Author无   * @CreateTime 2019/4/20   * @attention   */公开课SmsService {      @ autowired   私人创建RestTemplate创建RestTemplate;   私人字符串appid;   私人字符串accountSid;   私人字符串authToken;/* *   *初始化   */公共SmsService (SmsProperties SmsProperties) {   这一点。appid=smsProperties.getAppid ();   这一点。accountSid=smsProperties.getAccountSid ();   这一点。authToken=smsProperties.getAuthToken ();   }/* *   *单独发送   */公共字符串sendSMS (SendSMSDTO SendSMSDTO) {   JSONObject JSONObject=new JSONObject ();   jsonObject。把(sid, accountSid);   jsonObject。把(“令牌”,authToken);   jsonObject。把(“appid”, appid);   jsonObject。put (" templateid ", sendSMSDTO.getTemplateid ());   jsonObject。put(“参数”,sendSMSDTO.getParam ());   jsonObject。put("移动",sendSMSDTO.getMobile ());   如果(sendSMSDTO.getUid () !=null) {   jsonObject.put (“uid”, sendSMSDTO.getUid ());   其他}{   jsonObject.put (“uid”、“”);   }   json字符串=JSONObject.toJSONString (jsonObject);//使用创建restTemplate进行访问远程Http服务   HttpHeaders header=new HttpHeaders ();   headers.setContentType (MediaType.APPLICATION_JSON_UTF8);   HttpEntity

SpringBoot封装自己的起动器的实现方法