SPB day2
SPB原理分析
1、首先利用了Condition进行有选择性的Bean创建,新建一个类实现condition,并在需要导入的Bean上加上@Conditional注解,并传入上述的condition实现子类作为参数,通常会自定义@ConditionOnxxx继承@Conditional,在@Conditional的match函数中使用metadata获取注解数据进行判断
2、如何切换内置服务器,由于SPB默认内置服务器为Tomcat,如果要切换则将Tomcat排除出依赖后,再重新加入其他服务器的依赖坐标即可,内部原理还是依赖上述的condition原理。
3、@EnableAutoConfiguration,如果使用其他包中的Bean,需要进行包扫描才可使用,或者可以使用@Import加载类的名字,@EnableAutoConfiguration其本质是对Import的封装。
@Import@EnableAutoConfiguration本质上是使用@Import导入ImportSelector的实现类,导入很多配置类,但是不是每个配置类都会被加载,而是使用了condition判断
用户可以自定义Starter,不过通常让Starter依赖autoconfigure类来进行相关bean的配置,加载的原理通过建立AutoConfiguration类来进行,同时要建立Properties来将实体与配置绑定并且在自动配置类中激活,详细过程可以参考源码。
事件监听主要是对Java本身事件监听的一个封装,可以在SPB启动的多个阶段进行监听。
监控机制可以看到项目启动过程中的各种方面信息,启用方法只需要导入依赖坐标即可,就可以在收到记录相关信息的URL 使用admin图形化界面