商务服务
《SpringCloud超级入门》Spring Boot Starter的介绍及使用《七
2024-12-23 09:34
  • ……

自动配置非常方便,当我们要操作 Mongodb 的时候,只需要引入 spring-boot-starter-data-mongodb 的依赖,然后配置 Mongodb 的链接信息 spring.data.mongodb.uri=mongodb://localhost/test 就可以使用 MongoTemplate 来操作数据,MongoTemplate 的初始化工作全部交给 Starter 来完成。

自动配置麻烦的是当出现错误时,排查问题的难度上升了。自动配置的逻辑都在 Spring Boot Starter 中,要想快速定位问题,就必须得了解 Spring Boot Starter 的内部原理。接下来我们自己动手来实现一个 Spring Boot Starter。

Spring Boot Starter项目创建


创建一个项目 spring-boot-starter-demo,pom.xml 配置代码如下所示。

org.springframework.boot

spring-boot-starter-web

org.projectlombok

lombok

true

创建一个配置类,用于在属性文件中配置值,相当于 spring.data.mongo 这种形式,代码如下所示。

import org.springframework.boot.context.properties.ConfigurationProperties;

import lombok.Data;

@Data

@ConfigurationProperties(“spring.user”)

public class UserPorperties {

private String name;

}

再定义一个 Client,相当于 MongoTemplate,里面定一个方法,用于获取配置中的值,代码如下所示。

public class UserClient {

private UserPorperties userPorperties;

public UserClient() {

}

public UserClient(UserPorperties p) {

this.userPorperties = p;

}

public String getName() {

return userPorperties.getName();

}

}

自动创建客户端


一个最基本的 Starter 包定义好了,但目前肯定是不能使用 UserClient,因为我们没有自动构建 UserClient 的实例。接下来开始构建 UserClient,代码如下所示。

@Configuration

@EnableConfigurationProperties(UserPorperties.class)

public class UserAutoConfigure {

@Bean

@ConditionalOnProperty(prefix = “spring.user”, value = “enabled”, havingValue = “true”)

public UserClient userClient(UserPorperties userPorperties) {

return new UserClient(userPorperties);

}

}

Spring Boot 会默认扫描跟启动类平级的包,假如我们的 Starter 跟启动类不在同一个主包下,如何能让 UserAutoConfigure 生效

在 resources 下创建一个 meta-INF 文件夹,然后在 meta-INF 文件夹中创建一个 spring.factories 文件,文件中指定自动配置的类

org.springframework.boot.autoconfigure.EnableAutoConfiguration=

com.cxytiandi.demo.UserAutoConfigure

Spring Boot 启动时会去读取 spring.factories 文件,然后根据配置激活对应的配置类,至此一个简单的 Starter 包就实现了。

使用 Starter


现在可以在其他的项目中引入这个 Starter 包,代码如下所示。

com.cxytiandi

spring-boot-starter-demo

0.0.1-SNAPSHOT

引入之后就直接可以使用 UserClient,UserClient 在项目启动的时候已经自动初始化好,代码如下所示。

@RestController

public class UserController {

@Autowired

private UserClient userClient;

@GetMapping(“/user/name”)

public String getUserName() {

return userClient.getName();

}

}

属性文件中配置 name 的值和开启 UserClient

先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

更多笔记分享

更多笔记分享

[外链图片转存中…(img-BtutNZVA-1711464643978)]

    以上就是本篇文章【《SpringCloud超级入门》Spring Boot Starter的介绍及使用《七】的全部内容了,欢迎阅览 ! 文章地址:http://fabua.ksxb.net/news/4626.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 海之东岸资讯移动站 http://fabua.ksxb.net/mobile/ , 查看更多   
最新文章
seo优化自动点击软件
摘要:,,SEO优化自动点击软件是一种用于提高网站流量和排名的工具,它能够自动模拟用户点击行为,从而提升网站的曝光度和搜索
正规seo费用【seo收费标准多少】
本文目录导读:SEO 费用的构成SEO 费用的影响因素合理选择 SEO 服务提供商预期回报与投资回报率在当今数字化的时代,搜索引擎优
SEO年度必备工具「死链检测工具三款对比」
本文主要讲解seo工作人员常用的网站死链检查工具,并将这几款网站404错误页面检查工具做一个简单的对比。所谓的网站死链检查工具
专业网站设计建设公司,助力企业发展
标题:专业网站设计建设公司:助力企业发展的关键力量随着互联网的普及和信息技术的飞速发展,企业发展的道路已经离不开网络。在
OpenAI ChatGPT服务短暂宕机,背后原因与用户体验分析
人工智能的不断进步,尤其是在AI绘画与AI写作工具的崛起,体现了技术发展的另一种趋势。AI绘画工具如DALL-E、Midjourney等,正在
《SpringCloud超级入门》Spring Boot Starter的介绍及使用《七
…… 自动配置非常方便,当我们要操作 Mongodb 的时候,只需要引入 spring-boot-starter-data-mongodb 的依赖࿰
家庭医生签约服务健康知识库(一)
第一部分 科学健康观素养一、基本知识和理念(15条)1.【健康的定义】健康是指身体、心理和社会状态的完好状态,而不仅仅是没有
华为新款折叠屏手机开售后“秒光” 产业渗透率有望快速提升 媒体报道,12月6日,华为在南山全球旗舰店正式发售折叠屏手机MateX6,售价12999元起,此前已有超过116万人预约...
来源:雪球App,作者: 科创板日报,(https://xueqiu.com/9252950692/315917278)媒体报道,12月6日,华为在南山全球旗舰店正式
中信银行信用卡欠两万逾期两年多没还上该如何处理?
中信银行信用卡欠两万逾期两年多没还上怎么办小编导语随着信用卡的普及,越来越多的人选择使用信用卡进行消费。信用卡欠款逾期的