论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
Mysql
›
5步带你玩转SpringBoot自定义自动配置那些知识点 ...
5步带你玩转SpringBoot自定义自动配置那些知识点
络腮胡菲菲
论坛元老
|
2023-6-20 19:02:41
|
显示全部楼层
|
阅读模式
楼主
主题
1049
|
帖子
1049
|
积分
3147
目前SpringBoot框架真的深受广大开发者喜爱,毕竟它最大的特点就是:
快速构建基于Spring的应用程序的框架,而且它提供了各种默认的功能和配置,可以让开发者快速搭建应用程序的基础结构。
但是,当我们需要自定义一些配置时,我们就需要使用自定义自动配置。
今天一定让大家深刻体验干货知识点,全程带有代码案例直接说明哦,一定不要错过哦!
1.自动配置类
首先我们要学习自动配置,一定要清楚自动配置类是什么,老话说得好,先走后跑嘛。
所以大家一定要记住
技术自动配置类是SpringBoot中非常重要的一部分。
也就是说,通过自动配置,SpringBoot就可以根据应用程序的依赖关系自动配置应用程序所需的所有组件。如果我们想要自定义自己的自动配置,首先我们就需要创建一个类,并使用@Configuration和@ConditionalOnClass注解将其标记为自动配置类。例如,我们可以创建一个名为MyAutoConfiguration的类,并在其中添加以下注解:
@Configuration
@ConditionalOnClass(MyService.class)
public class MyAutoConfiguration {
// 自定义配置代码
}
复制代码
大家可以看到,在上述的代码中我们定义了一个MyAutoConfiguration类,并使用@Configuration注解将其标记为配置类。我们还使用@ConditionalOnClass注解来指定当MyService类存在时,才会创建该自动配置类。这也就意味着,只有当我们的应用程序中存在MyService类时,才会自动应用我们的自定义自动配置。
所以自定义自动配置的好处在于,我们可以根据自己的需求来自定义应用程序的配置。例如,我们可以定义自己的数据源,或者添加自己的拦截器。但是,自定义配置的时候,是需要自定义属性来打辅助的哦,大家别着急,让我们继续来看看吧!
2.自定义属性
通过上述我们了解了什么是自定义配置,那么大家要清楚在自定义自动配置时,我们经常需要使用自定义属性来配置应用程序。我们可以通过使用@ConfigurationProperties注解来实现自定义属性。例如,我们可以创建一个名为MyProperties的类,并在其中添加以下注解:
在上面的代码中,我们定义了一个MyProperties类,并使用@ConfigurationProperties注解来指定该类的属性前缀为my。这意味着,我们可以在应用程序的application.properties文件中使用my.name和my.version属性来配置MyProperties类的属性值。
自定义属性的好处在于,我们可以根据自己的需求来配置应用程序的属性。例如,我们可以定义自己的数据库连接池大小,或者定义自己的日志级别。大家一定要认真练习,活学活用哦!
3.自定义Starter
好啦,学习了自动配置和自动属性之后,让我们来看看什么是自定义Starter吧?
其实,自定义Starter是SpringBoot中非常重要的一部分。Starter是一组依赖项的集合,它们一起提供了一组功能。例如,SpringBoot提供了一个名为spring-boot-starter-web的Starter,它包括了所有构建Web应用程序所需的依赖项。我们可以通过创建一个自定义的Starter来打包我们的自动配置类和自定义属性。要创建自定义Starter,我们需要创建一个名为spring-boot-starter-{name}的Maven项目,并在其中添加以下依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>{your-group-id}</groupId>
<artifactId>{your-artifact-id}</artifactId>
<version>{your-version}</version>
</dependency>
</dependencies>
复制代码
其中,{your-group-id}、{your-artifact-id}和{your-version}分别为你的自动配置类的Maven坐标。
自定义Starter的好处在于,我们可以将所有自定义配置打包成一个单独的依赖项,并将其添加到应用程序中。这样,我们就可以将自己的应用程序打包成一个可执行的Jar文件,而不必担心依赖项的问题哦。
介绍完之后肯定有很多朋友好奇如何使用自定义Starter,那么接下来就带大家来了解一些关于自定义Starter的使用吧。
4. 在应用程序中使用自定义Starter
在Spring框架中,Starter是一种约定俗成的方式,用于自动配置应用程序。当我们引入一个Starter依赖时,Spring会根据Starter中的自动配置类自动配置应用程序,接下来大家就跟我一起来看看如何使用自定义Starter来自动配置应用程序吧。
4.1 创建自定义Starter
要创建自定义Starter,我们需要创建一个Maven项目,并将其打包为一个Spring Boot Starter。在Starter项目中,我们需要创建以下几个文件:
●
自动配置类:
这个类中包含了Spring Boot应用程序的自动配置逻辑。我们需要在这个类中定义一些Bean,以及它们的依赖关系。
●
Spring.factories文件:
这个文件中列出了所有的自动配置类。Spring Boot会自动加载这个文件,并将其中的自动配置类与应用程序联合使用。
●
pom.xml文件:
这个文件中列出了Starter的依赖关系。
下面是一个简单的自动配置类的例子:
@Configuration
public class MyAutoConfiguration {
@Bean
public MyBean myBean() {
return new MyBean();
}
}
复制代码
4.2 引入自定义Starter
要引入自定义Starter,我们需要在应用程序的pom.xml文件中添加Starter依赖关系。例如,如果我们有一个名为"my-spring-boot-starter"的Starter项目,我们可以在应用程序的pom.xml文件中添加以下依赖项:
<dependency>
<groupId>com.example</groupId>
<artifactId>my-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
复制代码
当我们添加这个依赖项时,Spring Boot会自动加载Starter中的自动配置类,并根据这些类自动配置应用程序。
4.3 使用自定义Starter
一旦我们引入了自定义Starter,我们就可以使用其中定义的Bean了。例如,如果我们在自定义Starter中定义了一个名为"MyBean"的Bean,我们可以在应用程序中使用以下代码来获取它:
@Autowired
private MyBean myBean;
复制代码
在这个例子中,Spring会自动注入"MyBean",并将其添加到应用程序的上下文中。
上述就是如何创建、引入和使用自定义Spring Boot Starter啦,大家都知道通过使用自定义Starter,我们可以减少应用程序配置的重复性工作,并提高应用程序的可维护性和可扩展性。所以希望上述内容可以对大家有所帮助哦!
说到这里,大家清楚SpringBoot自动配置优先级吗?如果大家感兴趣的话,就继续向下看吧!
5. SpringBoot自动配置优先级
在SpringBoot应用程序中,自动配置是一个强大的特性,它可以自动配置应用程序的各个方面,从数据源到Web安全性等。在默认情况下,SpringBoot会自动配置许多参数,但是当有多个自动配置类时,SpringBoot需要确定哪个自动配置类应该优先使用。接下来将跟大家一起探讨SpringBoot自动配置的优先级以及如何控制它。
5.1 SpringBoot自动配置的优先级
SpringBoot自动配置的优先级是根据类路径中的jar包顺序来决定的。具体来说,当SpringBoot应用程序启动时,SpringBoot会检查类路径中所有可用的jar包,并按照以下顺序加载自动配置类:
● 项目本身的jar包
● 项目依赖的jar包
● 第三方jar包
这就意味着,如果项目本身包含自动配置类,那么它将比依赖的jar包中的自动配置类优先加载。
5.2 控制自动配置的优先级
如果您需要控制SpringBoot自动配置的优先级,可以通过使用@AutoConfigureOrder注解来实现。该注解允许您指定自动配置类的顺序。数字越小的自动配置类优先级越高。
以下是一个使用@AutoConfigureOrder注解的示例:
@Configuration
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
public class MyAutoConfiguration {
//自动配置代码
}
复制代码
在上面的示例中,我们使用@AutoConfigureOrder注解将MyAutoConfiguration类的优先级设置为最高优先级。
5.3 示例
假设我们有两个自动配置类:MyAutoConfiguration1和MyAutoConfiguration2,我们想要确保MyAutoConfiguration1的优先级高于MyAutoConfiguration2。我们可以使用@AutoConfigureOrder注解来控制它们的优先级。以下是代码示例:
5.3.1 MyAutoConfiguration1
@Configuration
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
public class MyAutoConfiguration1 {
//自动配置代码
}
复制代码
5.3.2 MyAutoConfiguration2
@Configuration
@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE)
public class MyAutoConfiguration2 {
//自动配置代码
}
复制代码
在上面的示例中,我们使用@AutoConfigureOrder注解将MyAutoConfiguration1的优先级设置为最高优先级,将MyAutoConfiguration2的优先级设置为最低优先级。
6. 总结
其实,
在SpringBoot应用程序中,自动配置是一个强大的特性,它可以自动配置应用程序的各个方面。
在默认情况下,SpringBoot会根据类路径中的jar包顺序来决定自动配置的优先级。如果大家需要控制自动配置的优先级,就可以使用@AutoConfigureOrder注解来实现哦。
而且通过自定义自动配置,我们可以根据自己的需求来配置应用程序,从而使应用程序更加灵活、高效。所以希望上述内容可以帮助大家更深入地了解SpringBoot自定义自动配置的知识,从而更好地应用它们到自己的项目中哦。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
络腮胡菲菲
论坛元老
这个人很懒什么都没写!
楼主热帖
论销售、售前的互助与博弈
C++读写文件
B站狂神Docker学习笔记
Python:灵活的开发环境
微信分享iOS Universal Link配置说明 ...
AAA
SPSS计算极值、平均值、中位数、方差、 ...
.NET WebAPI 使用 GroupName 对 Contro ...
<C++>继承的进阶之构造与析构的调用 ...
BP神经网络(反向传播算法原理、推导过 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
容器及微服务
分布式数据库
Oracle
MES
物联网
虚拟化与私有云
网络安全
云原生
快速回复
返回顶部
返回列表