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

dede手机网站建设教程郑州建设企业网站公司

dede手机网站建设教程,郑州建设企业网站公司,青岛关键词推广seo,怎样做可以互动留言的网站当我们想要封装一些自定义功能给别人使用的时候,创建Spring Boot Starter的形式是最好的实现方式。如果您还不会构建自己的Spring Boot Starter的话,本文将带你一起创建一个自己的Spring Boot Starter。 快速入门 创建一个新的 Maven 项目。第三方封装的…

当我们想要封装一些自定义功能给别人使用的时候,创建Spring Boot Starter的形式是最好的实现方式。如果您还不会构建自己的Spring Boot Starter的话,本文将带你一起创建一个自己的Spring Boot Starter。

快速入门

  1. 创建一个新的 Maven 项目。第三方封装的命名格式是 xxx-spring-boot-starter ,例如:didispace-spring-boot-starter

  2. 编辑pom.xml,添加spring-boot-autoconfigurespring-boot-starter依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency>
</dependencies>
  1. 创建一个用 @Configuration 注释的配置类,在这里您可以使用@Bean来创建使用@ConditionalOnClass@ConditionalOnMissingBean等条件注释来控制何时应用配置。

@Configuration
@ConditionalOnClass(MyFeature.class)
@ConditionalOnProperty(prefix = "myfeature", name = "enabled", matchIfMissing = true)
public class MyFeatureAutoConfiguration {@Bean@ConditionalOnMissingBeanpublic MyFeature myFeature() {return new MyFeature();}
}
  1. src/main/resources/META-INF目录下创建spring.factories文件,并在org.springframework.boot.autoconfigure.EnableAutoConfiguration关键字下列出您的自动配置类,比如:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.didispace.myfeature.MyFeatureAutoConfiguration

该配置的作用是让Spring Boot应用在引入您自定义Starter的时候可以自动这里的配置类。

注意:Spring Boot 2.7开始,不再推荐使用spring.factories,而是改用/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,文件内容直接放需要自动加载配置类路径即可。这个变更具体可见之前的这篇文章:《Spring Boot 2.7开始spring.factories不推荐使用了》:

https://www.didispace.com/article/spring-boot/spring-boot-factories-deprecations.html

验证测试

在制作Spring Boot Starter的时候,一定记得使用单元测试来验证和确保自动化配置类在任何条件逻辑在启动器下能够按照正确的预期运行。

创建单元测试

使用@SpringBootTest加载完整的应用程序上下文,并验证启动程序是否正确配置了 Bean 和属性。

@SpringBootTest(classes = TestApplication.class)
public class MyStarterAutoConfigurationTest {@Autowired(required = false)private MyService myService;@Testpublic void testMyServiceAutoConfigured() {assertNotNull(myService, "MyService should be auto-configured");}
}

覆盖不同的配置

如果有不同的配置方案,那么还需要使用@TestPropertySource@DynamicPropertySource覆盖属性以测试不同配置下的情况。

或者也可以直接简单的通过@SpringBootTest中的属性来配置,比如下面这样:

@SpringBootTest(properties = "my.starter.custom-property=customValue")
public class MyStarterPropertiesTest {@Value("${my.starter.custom-property}")private String customProperty;@Testpublic void testPropertyOverride() {assertEquals("customValue", customProperty, "Custom property should be overridden by @SpringBootTest");}
}

覆盖@Conditional的不同分支

如果您的启动器包含条件配置,比如:@ConditionalOnProperty@ConditionalOnClass等注解,那么就必须编写测试来覆盖所有条件以验证是否已正确。

比如下面这样:

@SpringBootTest(classes = {TestApplication.class, MyConditionalConfiguration.class})
@ConditionalOnProperty(name = "my.starter.enable", havingValue = "true")
public class MyStarterConditionalTest {@Autowiredprivate ApplicationContext context;@Testpublic void conditionalBeanNotLoadedWhenPropertyIsFalse() {assertFalse(context.containsBean("conditionalBean"),"Conditional bean should not be loaded when 'my.starter.enable' is false");}
}

为了覆盖不同的条件分支,我们通常还需要使用@TestConfiguration注解来有选择地启用或禁用某些自动配置。

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

相关文章:

  • 河南新站关键词排名优化外包百度爱采购竞价
  • 焦作网站建设策划网络营销师证书怎么考
  • 天津卓荣建设集团网站wordpress 页面 小工具
  • 图表设计 网站建筑网站带图解
  • 算命网站搭建做网站的是怎么赚钱
  • 门户网站建设单位资质要求国家机构网站建设
  • 长沙优化网站排名优化网站哪个好
  • 做美食网站视频下载微信开放平台创建移动应用
  • 河南省住房城乡建设门户网站深圳市招投标信息网
  • 如何免费搭建自己的网站宁夏建设工程造价站网站
  • 网站备案 建设方案书惠州网站建设模板合作
  • 手机上的网站设置方法大连在哪里个省份
  • 网站调用微信数据网站开发 0755
  • 郑州公司网站平台建设简约wordpress主题
  • 网站怎么做301跳转有服务器做网站
  • 动漫项网站建设项目项目建议书做网站一般需要多少钱
  • 代发网站建设邢台做网站优化价格
  • 网站建设工作分解哪些网站是python做的
  • 运城门户网站建设查做空运磁检的网站
  • 做不好的网站违法吗网站开发所需人才
  • 自己做剧本网站下载做网站ftp具体步骤
  • 单页网站怎么做排名长春网站关键词推广
  • 国企网站建设会议纪要哈尔滨seo排名优化公司价格
  • 第一次和两个老头做网站电力建设科学技术进步申报网站
  • 建网站带app多少投资小程序游戏搭建
  • 网站设计要学哪些网页界面设计中一般使用的分辨率的显示密度是
  • 宜兴建设局 审图中心 网站网站建设免费代理
  • wordpress中文采集插件深圳网站建设seo
  • 免费的ftp网站校友网站 建设
  • 区块链网站怎么做做网站设计的都转行干啥了