商务服务
《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/ , 查看更多   
最新文章
PICO启动“全民优化师”活动,征集VR游戏性能优化方案
创作期截至4月16日,评选期则是4月22日至5月9日(映维网Nweon 2025年03月31日)PICO正在举行名为“全民优化师”的活动,邀请你
TOSHIBA代理商东芝手机「TOSHIBA代理商」
TOSHIBA东芝半导体公司,在国际市场上盛名远扬,家喻户晓。在日本之外,东芝拥有100多家子公司和协作公司的庞大全球网络,仅海外
互传手机互传换机助手手机互传「互传手机互传换机助手」
互传手机互传换机助手,一般又称互传换机助手app。互传换机助手app是一款很受网友好评的手机换机工具。可以实现手机之间数据批量
噬心工具箱手机工具箱「噬心工具箱」
噬心工具箱这是一款方便好用的手机工具箱应用,用户可以使用软件轻松处理图片,超多使用功能,让用户生活更方便。噬心工具箱app
儋州清明假期旅游迎来热潮,民俗体验趣味十足
南海网4月6日消息(记者赵航)花落日渐暖,风起正清明,今年清明假期,踏青赏花趣味十足。4月5日,“福暖春日,泉享安康”温泉美
【教程】全民K歌,用手机唱卡拉OK,朋友一起听!手机k歌「【教程】全民K歌,用手机唱卡拉OK,朋友一起听!」
用手机软件来唱卡拉OK,我知道的有两个软件推荐给您,全民K歌和唱吧。两个软件功能都很强,以前年轻人似乎用唱吧的多一些,现在
繁荣“入境游”,“游”出“日常感”是关键
原标题:繁荣“入境游”,“游”出“日常感”是关键年初至今,我国入境游市场持续复苏,到清明节期间迎来小高峰。数据显示,清明
苹果iPhone14和13对比区别是什么 苹果美版值得买吗?手机壳多少钱「苹果iPhone14和13对比区别是什么 苹果美版值得买吗?」
处理器、屏幕、摄像头、内存等不同处理器相同:iPhone14的处理器没有变化,还是iPhone13 Pro上的满血版A15 仿生芯片,只有iPhone
两个人在线观看免费完整版日本手机在线播放「两个人在线观看免费完整版日本」
格式“武神主宰08集”是武神一部出色的武侠古装影片,充斥着大量精彩的主宰空手道、木棉三绝和剑术招式的武神视觉盛宴。它是主宰
北京:“以花为媒”培育新消费
  4月的北京,繁花似锦装点千年古都,满城春色中涌动着勃勃生机。  北京玉渊潭公园樱花绽放,吸引游客慕名赏花;元大都城垣