springboot快速入门及@SpringBootApplication注解分析
首先我们分析的就是入口类 Application 的启动注解 @SpringBootApplication ,进入源码:发现 @SpringBootApplication 是一个复合注解,包括 @ComponentScan ,和 @SpringBootConfiguration , @EnableAutoConfiguration 。
开启 Spring 应用上下文的自动配置功能,它试图猜测你可能需要配置的 bean 信息。表示包含该注解的类所在的包应该在 AutoConfigurationPackages 中注册。
可以看到SpringBootConfiguration 等同于使用了@Configuration EnableAutoConfiguration会根据classpath以及定义的Bean来帮你加载你想要的bean。 可以通过spring.autoconfigure.exclude来排除掉不想自动加载的bean。
SpringBootApplication注解是SpringBoot的灵魂注解 这个注解整合了3个注解的特性:分别是@Configuration注解、@Component注解、@EnableAutoConfiguration注解。
springboot的自定义注解功能实现类该怎么写?
校验类 校验类需要实现 ConstraintValidator 接口,第一个泛型为注解,第二个为校验的数据类型。实现这个接口必须要重写 isValid() 方法,在其中实现主要的校验逻辑。
data是lombok的注解,别的注解不多说。编写你的conroller ,也一定要加@RefreshScope注解, 不加的话,呵呵,对不起,无法运行。
SpringbootConfiguration注解等同于以下下三个注解:可以看到SpringBootConfiguration 等同于使用了@Configuration EnableAutoConfiguration会根据classpath以及定义的Bean来帮你加载你想要的bean。
springboot中获取apollo或者nacos里的配置文件
1、此时,需要在 bootstrap.yml 中添加spring cloud配置:(至于为什么是bootstrap.yml而不是application.yml,这又是另一个问题了)有了上面的配置,程序启动后,就能正常的从nacos配置中心获取配置了。
2、在 application.yaml 配置文件中指定nacos中配置的 Data ID 不会生效,需要通过注解 @NacosPropertySource 指定才能生效。
3、nacos-config这个依赖就相当于SpringCloud Config,nacos-discovery这个依赖就相当于Eureka。
4、共享配置 -扩展配置 - 当前应用配置 , 当后面加载有相同配置的时候,直接覆盖之前的配置。共享跟扩展设置值set的方法已经废弃不用了。
5、NacosConfigBootstrapConfiguration是@BootstrapConfiguration的配置类,在bootstrap 的SpringApplication创建的过程中,会加载这个类。这个Configuration类包括两个Bean,分别是NacosConfigManager,NacosPropertySourceLocator。