当前位置: 首页 > news >正文

河源网站设计怎么做什么软件可以弄排名

河源网站设计怎么做,什么软件可以弄排名,全局代理ip,最专业的seo公司自定义SpringBoot的starter 引言 starter命名格式: 官方的 starter 的命名格式为 spring-boot-starter-{xxxx} 比如spring-boot-starter-activemq 第三方我们自己的命名格式为 {xxxx}-spring-boot-starter。比如mybatis-spring-boot-starter。 如果我们忽略这种约定…

自定义SpringBoot的starter

引言

starter命名格式:

  • 官方的 starter 的命名格式为 spring-boot-starter-{xxxx} 比如spring-boot-starter-activemq
    第三方我们自己的命名格式为 {xxxx}-spring-boot-starter。比如mybatis-spring-boot-starter。
    如果我们忽略这种约定,是不是会显得我们写的东西不够“专业“。

实战

完整项目结构:
在这里插入图片描述

①导入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.18</version><scope>provided</scope>
</dependency>

②编写配置文件类(SmsProperties)

@ConfigurationProperties(prefix = "sms")
@Data
public class SmsProperties {private SmsMessage aliyun = new SmsMessage();private SmsMessage tencent = new SmsMessage();@Datapublic static class SmsMessage{/*** username 用户名*/private String userName;/*** 密码*/private String passWord;/*** 秘钥*/private String sign;/****/private String url;@Overridepublic String toString() {return "SmsMessage{" +"userName='" + userName + '\'' +", passWord='" + passWord + '\'' +", sign='" + sign + '\'' +", url='" + url + '\'' +'}';}}
}

@ConfigurationProperties注解上配置的prefix 属性,主要用来区别各个组件的参数。

  • 这里有个小知识点需要注意下当我们在配置文件输入sms我们的idea会提示这个sms有哪些属性可以配置,以及每个属性的注释都有标记,建议的话注释还是写英文,这样会显得你比较专业。
    如果想要把此处字段上的注释展示出来,则需要导入
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency>

效果:
在这里插入图片描述

③编写自动配置类

@EnableConfigurationProperties(value = SmsProperties.class)
@Configuration
public class SmsAutoConfiguration  {/***  阿里云发送短信的实现类* @param smsProperties* @return*/@Beanpublic AliyunSmsSenderImpl aliYunSmsSender(SmsProperties smsProperties){return new AliyunSmsSenderImpl(smsProperties.getAliyun());}/*** 腾讯云发送短信的实现类* @param smsProperties* @return*/@Beanpublic TencentSmsSenderImpl tencentSmsSender(SmsProperties smsProperties){return new TencentSmsSenderImpl(smsProperties.getTencent());}
}

④接口及实现类

接口:

public interface SmsSenderService {boolean send(String msg);
}

实现类:

public class TencentSmsSenderImpl implements SmsSenderService{private SmsProperties.SmsMessage smsMessage;public TencentSmsSenderImpl(SmsProperties.SmsMessage smsProperties) {this.smsMessage = smsProperties;}@Overridepublic boolean send(String message) {System.out.println(smsMessage.toString()+"开始发送短信==》短信内容:"+message);return true;}
}
public class AliyunSmsSenderImpl implements SmsSenderService {private SmsProperties.SmsMessage smsMessage;public AliyunSmsSenderImpl(SmsProperties.SmsMessage smsProperties) {this.smsMessage = smsProperties;}@Overridepublic boolean send(String message) {System.out.println(smsMessage.toString()+"开始发送短信==》短信内容:"+message);return true;}
}

⑤让starter生效(应用集成)

starter集成应用有两种方式:

  1. 被动生效

通过SpringBoot的SPI机制

  • resources目录下新建一个META-INF目录
  • 在META-INF目录下创建spring.factories
  • spring.factories写入:

在这里插入图片描述

注意两行都是顶格写

  1. 主动生效(注解)

在starter组件集成到我们的Spring Boot应用时需要主动声明启用该starter才生效

  • 通过自定义一个@Enable注解然后在把自动配置类通过Import注解引入进来。
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import({SmsAutoConfiguration.class})
public @interface EnableSms {
}

使用的时候需要在启动类上面开启这个注解。
在这里插入图片描述

⑥mvn install打包到本地仓库

记得需要打包到本地仓库(别忘记将settings中的maven配置修改为本地的maven)

BUG:如果我们引入了自定义的starter之后,仍然找不到,则需要在自定义starter项目中添加插件(因为多了BOOT-INF)

<!--找不到自定义starter-->
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><skip>true</skip></configuration>
</plugin>

⑦使用

  1. 新建项目,引入我们的starter依赖
<!--自定义starter-->
<dependency><groupId>com.zi</groupId><artifactId>sms-spring-boot-starter</artifactId><version>1.0.0</version>
</dependency>
  1. 编写配置文件
server:port: 8080
# 自定义starter中的配置
sms:aliyun:user-name: ziyipass-word: 123456url: https://aliyun.com/send
  1. 测试类中的启动类
@SpringBootApplication
//@EnableSms
public class StarterDemoApplication {@Autowiredpublic static void main(String[] args) {ConfigurableApplicationContext applicationContext = SpringApplication.run(StarterDemoApplication.class, args);AliyunSmsSenderImpl aliyunSmsSender = applicationContext.getBean(AliyunSmsSenderImpl.class);aliyunSmsSender.send("用阿里云发送短信");}}
  1. 启动Application,查看结果
    在这里插入图片描述

参考:
https://developer.aliyun.com/article/893073

http://www.yayakq.cn/news/798901/

相关文章:

  • 如何免费创建个人网站在家做网站编辑
  • 做网店哪些网站比较好邯郸外贸网站建设公司
  • 网站建设包含以下哪些建设阶段绍兴市越城区建设局网站
  • 安徽网站优化建设wordpress输出标签文章
  • 建设工程竣工规划局网站网络虚拟号
  • 企业网站建设需要提供什么内容数据网站开发
  • 自己建一个网站难吗济南网站制作网站
  • 模板网站外贸建站黄冈网站优化公司哪家好
  • 做app和网站wap网站域名申请
  • 建立网站一般那些阶段会展设计
  • 怎么让别人找你做网站优化方案化学
  • 找人做网站排名免费网页设计成品
  • 测字算命网站开发wordpress 二级域名
  • 网站问题有哪些内容做网站的公司cnfg
  • 找外包公司做网站给我一个可以在线观看片
  • 建网站莱阳哪家强?学网站建设需要学多久
  • 搞笑网站建设目的和意义郑州哪里可以做网站
  • 网站搭建设计课程报告wordpress主题透明
  • 做网站需要的资料青岛外贸建设网站
  • 如何将软件上传到公开网站南阳网站建设xihewh
  • 网站建设推广合同范本网络舆情分析师
  • 企业手机网站源码百度一下你就知道网页
  • 网站建设报告 商业价值智慧团手机网上登录入口
  • 计算机专业论文 网站建设大一网页设计代码英语
  • 乐清网站制作推广wordpress要用什么代码
  • 南昌网站开发培训学校聊城市住房和城乡建设局网站首页
  • 贵州建设厅造价信息网站百度小说风云榜今天
  • 档案网站建设愿景百度网站入口
  • 在凡科网申请的网站设置网页访问密码系统官网网站模板
  • 南京建站公司模板如何做一份企业网站规划