范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

通过注解实现自定义SpringBootStarter自动装配

  以Spring boot 作为微服务开发的项目中会用到很多第三方,或者自建的一些依赖SDK,例如 分布式锁、文件管理、数据库连接、统一错误拦截等组件。为了达到通用的目的,都会创建自定义的spring boot stater 组件。以下介绍创建步骤:
  一、创建Maven测试项目test-starter pom文件如下: 	 		com.test.starter 		test-starter 		1.0.0 	 	4.0.0 	test-spring-boot-starter 	jar 	 		 			org.springframework.boot 			spring-boot-autoconfigure       2.3.2.RELEASE 		 	 	 		test-spring-boot-starter 	 
  二、创建自动装配类TestServiceConfiguration.javapackage com.test.spring.boot.starter.config;  import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;  import com.test.spring.boot.starter.TestService; import com.test.spring.boot.starter.TestServiceImpl;   @Configuration @EnableConfigurationProperties(value = TestServiceProperties.class) public class TestServiceConfiguration {          @Autowired         private TestServiceProperties properties;           @Bean         public TestService  getTestService() {           return new TestServiceImpl(properties);         } }
  三、创建配置类TestServiceProperties.javapackage com.test.spring.boot.starter.config;  import org.springframework.boot.context.properties.ConfigurationProperties;  import lombok.Data; import lombok.ToString;  @Data @ToString @ConfigurationProperties(prefix = "test.starter") public class TestServiceProperties {          /**          * 客户端ID          */         private String clientId;          /**          * 客户端名称          */         private String clientName; }
  四、创建提供服务的接口TestService.javapackage com.test.spring.boot.starter;  public interface TestService {        /**        * 测试        * @param name        * @return        */       String sayHello(String name); }
  五、创建TestService的实现类型TestServiceImpl.javapackage com.test.spring.boot.starter;  import com.test.spring.boot.starter.config.TestServiceProperties;  /**  * 服务实现  * @author test  *  */ public class TestServiceImpl implements TestService {          private TestServiceProperties properties;          public TestServiceImpl(TestServiceProperties properties) {           this.properties = properties;         }          @Override         public String sayHello(String name) {           return "clientId: "+properties.getClientId()+",clientName: "                        +properties.getClientName()+",welcome "+name+"!";         } }
  六、创建自定义注解@EnableTestpackage com.test.spring.boot.starter.annotation;  import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;  import org.springframework.context.annotation.Import;  import com.test.spring.boot.starter.config.TestServiceConfiguration;  /**  * 自定义自动装配启动注解  * @author test  *  */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented @Import({TestServiceConfiguration.class}) public @interface EnableTest {  }
  通过以上步骤就实现了自定义Spring boot starter test-spring-boot-starter 组件,下面创建测试项目去调用这个starter组件。
  创建starter组件使用项目
  一、创建maven测试项目test-service,pom文件如下 	 		com.test.starter 		test-starter 		1.0.0 	 	4.0.0 	test-service 	jar  	 		 			org.springframework.boot 			spring-boot-starter-web 		 		 			org.springframework.boot 			spring-boot-starter-test 			test 			 				 					org.junit.vintage 					junit-vintage-engine 				 			 		    		 		    com.test.starter 			test-spring-boot-starter 			1.0.0 		 	 	 		test-service 		 			 				org.springframework.boot 				spring-boot-maven-plugin 				${spring.boot.version} 				 					 						 							repackage 						 					 				 			 		 	 
  二、创建启动类Application.javapackage com.test.service;   import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan;  import com.test.spring.boot.starter.annotation.EnableTest;  @EnableTest    //启动自定义组件 @ComponentScan(basePackages = {  		"com.test.service"}) @SpringBootApplication public class Application {         public static void main(String[] args) {           SpringApplication.run(Application.class, args);          } }
  三、创建配置文件application.ymltest:   starter:      client-id: test-service-01      client-name: test-service
  四、创建测试类TestController.javapackage com.test.service.controller;  import javax.annotation.Resource;  import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;  import com.test.spring.boot.starter.TestService;  @RestController @RequestMapping("/v1/test") public class TestController {            @Resource         private TestService testService;          @GetMapping("/{name}")         public String hello(@PathVariable("name")String name) {           return testService.sayHello(name);         } }
  到这里整个自定义spring boot starter 创建就完成了,同时也依赖到项目中进行使用了。
  项目代码:starter-test: 自定义starter组件

品牌价值排行榜苹果连续第二年位居榜首在BrandFinance年度品牌价值全球500强排行榜上,苹果连续第二年位居榜首,但亚马逊正在增长,TikTok是迄今为止增长最快的品牌。根据BrandFinance的数据,苹果国家邮政局发布2022年邮政快递业更贴近民生七件实事来源中国日报网中国日报1月27日北京电(记者罗望舒)1月27日,国家邮政局举行专题新闻发布会,发布2022年邮政快递业更贴近民生七件实事。国家邮政局新闻发言人办公室主任侯延波表示,咸鱼运单号怎么处理这个问题是好多小伙伴们都会担心的一个问题,我们如果在拼夕夕拿货的话,拼夕夕使用多数为数字面单,而数字面单在阿里系统会全网数据同步,为了防止刷单,所以不允许单号重复那么当快递单号异常2022年碳中和事业巅峰,错失了这么多风口,你还在犹豫什么?最近发现时间真的过得很快,时代变化也很快,快到我们的思想根本反应不过来,从短视频网红经济IP制造元宇宙NFT再到碳中和,也就是短短的几年时间,一个接一个的风口,好像正要去抓,却总是60页智慧城市运营管理平台解决方案(附下载)xX城市基础设施运营管理平台基于CIM(城市信息模型)平台技术,以嘉兴市环境能源数据城市运行数据交通管理数据安防应急数据为基础。建立起三维城市空间模型和城市信息的城市数字底座是充分小米12年货节甄选礼盒上架,春节送礼就它了今天,小米手机宣布,小米联合高通骁龙推出小米12年货节甄选礼盒。礼盒包含小米12手机虎年定制手机壳,用户还有机会额外获得收藏版骁龙8纪念品1枚。这款年货节甄选礼盒将于1月30日限量为什么总是英伟达?本文共4000字,阅读需约7分钟作者TimothyPrickettMorgan原文标题NVIDIACEOONCOMPETITION,SOFTWARE,ANDTHEOMNIVERSE从斗鱼到腾讯斗鱼,意在元宇宙在元宇宙大行其道的当下,腾讯先是大幅度减持京东,然后买入游戏厂商黑鲨,再私有化斗鱼,难免不让人猜疑,腾讯已经在为打造一个游戏为中心的元宇宙帝国,磨刀霍霍了。腾讯的商业版图中,或将再苹果再推iOS15。3系统更新,重点修复了这项漏洞1月27日凌晨,苹果正式向用户推送了iOS15。3和iPadOS15。3正式版更新。此次更新的内容主要是针对,此前Safari浏览器存在的漏洞进行修复。据了解,在今年1月份的时候,徕卡CL数码相机从精致外形到自动对焦,他给我们带来了什么?谈到徕卡,很多人第一反应便是徕卡M相机,其实徕卡除了拥有在摄影界引爆纯手动旁轴摄影风格的M相机外,还拥有许多配备自动对焦等电子功能的数码相机。其中备受摄影玩家喜爱的一款就是徕卡CL小米投资至盛半导体硬科技观察小米投资至盛半导体苏州至盛半导体科技有限公司发生工商变更,新增小米关联公司海南极目创业投资有限公司为股东,同时公司注册资本增至约378。24万人民币。资料显示,至盛半导体
一加骁龙865旗舰狂降2000元值得入手吗?120Hz30W无线立体双扬智能手机行业竞争激烈,今年主要的旗舰机搭载的是骁龙870和骁龙888处理器,因此去年搭载骁龙865的机型纷纷降价,今天要说的这款手机来自一加的一加8Pro,这款手机的标配版现在降价网信办通报84款App违法网络借贷类成重灾区今天网信办通报了84款App违法违规收集使用个人信息情况。其中,安全管理类App包括腾讯手机管家猎豹清理大师360手机卫士等36款App网络借贷类成重灾区,包括安逸花平安消费金融等从5999元跌至4999元,库克判断失误,iPhone开卖仅半年售价大跳水库克曾经是不少打工人最羡慕的人,因为苹果公司不仅仅每年会给库克巨额的薪水,而且2020年的时候苹果董事会为了留住库克继续连任苹果CEO,甚至不惜给他一亿多美金的激励,打工能打到库克特斯拉又致人死亡,死者为退休民警,汇总近两年20起典型事故今年以来,特斯拉多款车型因刹车失灵在中国造成众多交通事故,并发生多起致人死亡据央视4月29日报道,今年因闪存卡问题,在中国韩国美国等国合计召回数十万辆汽车。据韩国媒体4月29日报道抢购2个月终于现货,这四款机型才是真性价比,256G大储存真香今年华为荣耀一机难求就算了,就连小米也有不少机型需要抢购,前两个月上市的Redmi新机一直没抢到手,结果五一也没成功换新机。好在小长假结束这两天不少热销机型终于现货,和我一样想要换荣耀手机确认可升级鸿蒙OS已在内测360正式官宣造车下个月,荣耀30系列荣耀V30系列荣耀Play4Pro,都会开始内测鸿蒙OS。1荣耀手机确认可升级鸿蒙OS已在内测今日有数码博主北冥数码鲲曝光了荣耀30Pro内部测试鸿蒙OS的系统在小县城跑滴滴,还有出路吗?现在在小县城跑滴滴是没有任何前景的,不过就算是大城市,你也只能跑一跑兼职了,因为派单模式已经和以前不同了。首先说一说资费问题,我去过很多北方的小城市,起步价在4。5元的偏多,可以这小米599超级新品来了床头省下3根线小趣今天收到了一款相当有趣的产品小米多线圈无线快充板。作为市面上少有支持3设备同时无线充电的充电板,这意味着至少可以帮助你在床头减少3根充电线,对于整理收纳有着极大助益。设计上,这哪些型号手机屏幕对人眼睛伤害最低?文小伊评科技看到这个问题,我觉得有必要讲明白屏幕到底是怎么伤害眼睛的。屏幕对于眼睛的伤害主要集中在三个方面01。长期看屏幕造成的是视觉疲劳,由此会引起诸如干眼症,近视眼,散光等等常使用华为手机长按2秒,还能开启7个实用功能,你还没发现吗使用华为手机这么久,好用的功能,你都了解了吗?这里就来分享华为手机,长按2秒可以开启的7个实用功能,学会就是涨知了哦。不知道你有没有在用呢?1长按开启桌面小组件桌面太单调,不妨试试摩登太空舱,与大疆联名,潮流又时尚,带你看新宝骏KiWiEV各种因素的影响,如今愿意入手新能源汽车的国人越来越多,我国也逐渐成为新能源车大国。从数据来看,在2020年全球新能源汽车累计销量超312。5万辆,而中国市场便贡献了120万辆,可见