SpringBoot:如何书写一个自定义的Enable*注解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot:如何书写一个自定义的Enable*注解相关的知识,希望对你有一定的参考价值。
参考技术A 1.新建自定义的注解2.应用此注解到配置类
3.这时候需要在EnableCustomFeature 类中通过@Import的方式引入一系列需要前置处理的Bean类
上述通过@Import方式做的原因,主要是将@Import标记的配置类中的bean作为ApplicationContext处理
使用Selector选择器启用Enable 自定义注解
示例如下:
上述示例中,自定义的注解中有一个criteria自定义注解属性字段,默认值为default,后面我们需要做的就是根据criteria的值激活两种不同的bean功能集合:
所以如果criteria字段值为 "default",就会加载SomeBeanConfigurationDefault, 否则就是加载SomeBeanConfigurationType1。
参考链接: http://www.java-allandsundry.com/2015/04/spring-enable-annotation-writing-custom.html
如何自定义一个SpringBoot Srarter
前言:
上一期我们通过学习知道了自动配置原理,其实创建一个自定义SpringBoot Starter也很简单。
目录
如何自定义一个SpringBoot Srarter?
首先创建一个项目,命名为demo-spring-boot-starter,引入SpringBoot相关依赖
编写配置文件
自动装配
配置自动类
测试
如何自定义一个SpringBoot Srarter?
首先创建一个项目,命名为demo-spring-boot-starter,引入SpringBoot相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
编写配置文件
这里定义了属性配置的前缀
@ConfigurationProperties(prefix = "hello")
public class HelloProperties
private String name;
//省略getter、setter
自动装配
创建自动配置类HelloPropertiesConfigure
@Configuration
@EnableConfigurationProperties(HelloProperties.class)
public class HelloPropertiesConfigure
配置自动类
在/resources/META-INF/spring.factories
文件中添加自动配置类路径
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\\
cn.fighter3.demo.starter.configure.HelloPropertiesConfigure
测试
至此,随手写的一个自定义SpringBoot-Starter就完成了,虽然比较简单,但是完成了主要的自动装配的能力。
- 创建一个工程,引入自定义starter依赖
<dependency>
<groupId>cn.fighter3</groupId>
<artifactId>demo-spring-boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
- 在配置文件里添加配置
hello.name=张三
- 测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloTest
@Autowired
HelloProperties helloProperties;
@Test
public void hello()
System.out.println("你好,"+helloProperties.getName());
- 运行结果
- 编辑运行结果
本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~
以上是关于SpringBoot:如何书写一个自定义的Enable*注解的主要内容,如果未能解决你的问题,请参考以下文章