上篇文章我们将了模式注解的装配,感兴趣的同学可以看下https://blog.csdn.net/mikezzmeric/article/details/86746320,接下来我们讲讲其他装配方式,首先看一看@Enable的模块装配。
什么是模块装配:
具备相同领域的功能组件集合(组件指前面一个一个的Component),组合形成一个独立的单元。在我们写SpringBoot应用的时候,我们经常会看到和用到@EnableWebMvcConfiguration或者@EnableScheduling这样的注解,这些注解使用后我们的应用就可以使用MVC的一些功能以及定时任务调度的一些功能了。
模块装配一共有两种实现方式:注解方式和编程方式
那么@EnableXXX是怎么做到这么厉害的功能呢?我们用手动实现的方式来一步一步解析。
@Enable 基于注解驱动方式
首先我们自定义一个@EnableXXX的注解,代码如下:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import(HelloWorldConfiguration.class)
public @interface EnableHelloWorld {
}
这里我们自定义了一个叫做Enable