Spring cloud 技术文档汇总(收集)

21 篇文章 0 订阅
11 篇文章 0 订阅

好的文章进行收集整理:

1.SpringApplication.run做了哪些事

https://mp.weixin.qq.com/s/uP4seo__qYMJMzmbWyUUnA

2.SpringBoot @ConditionalOnBean、@ConditionalOnMissingBean

https://blog.csdn.net/tianyaleixiaowu/article/details/78201587

@ConditionalOnBean(Abc.class) Abc.class  已注入的Bean存在时处理

@ConditionalOnMissingBean(Abc.class)  

@Bean
@ConditionalOnMissingBean
public NacosDiscoveryProperties nacosProperties() {
   return new NacosDiscoveryProperties();
}

NacosDiscoveryProperties不存在时,进行初始化NacosDiscoveryProperties

@ConditionalOnProperty是指在application.yml里配置的属性是否为true,其他的几个都是对class的判断。

3.Java中Class标签@PostConstruct和@PreDestroy,表示执行顺序,服务器仅加载一次

https://www.jianshu.com/p/98cf7d8b9ec3

4.Spring cloud 网络配置相关,InetUtils、InetUtilsProperties和UtilAutoConfiguration提供了网络配置相关的功能。

          网卡选择:https://blog.csdn.net/xichenguan/article/details/76557065

          Spring Cloud Netflix Eureka: 多网卡环境下Eureka服务注册IP选择问题

          https://blog.csdn.net/neosmith/article/details/53126924

          Spring Cloud Eureka 多网卡配置最终版

           https://blog.csdn.net/xichenguan/article/details/76632033

5.@CallerSensitive

使用CallerSensitive后,getCallerClass不再用固定深度去寻找actual caller(“我”),而是把所有跟反射相关的接口方法都标注上CallerSensitive,搜索时凡看到该注解都直接跳过,这样就有效解决了前面黑客通过构造双重反射来提升权限的问题https://blog.csdn.net/aguda_king/article/details/72355807

6.EndPoint  主要用于暴漏SpringMvc内部运行的信息

Spring boot actuator监控端点集成,可以集成监控+数据暴漏+grafana图表软件,进行图形化展示

源码解析:https://blog.csdn.net/qq_26000415/article/details/79060258

端点小总结:http://blog.didispace.com/spring-boot-actuator-1/

Endpoint也是通过spring.factories实现扩展功能,注入了对应的Bean来实现应用监控的功能

https://www.jianshu.com/p/fd93d941bf3b

7.@Bean 注册对象时,方法参数是取Spring 容器中的具体声明类的注册Bean。如果声明类注册的对象有多个,则需要参数名一致,否则会报不确定选择哪个Bean。

@Bean
	@ConditionalOnBean(AutoServiceRegistrationProperties.class)
	public NacosAutoServiceRegistration nacosAutoServiceRegistration(
			NacosServiceRegistry registry,
			AutoServiceRegistrationProperties autoServiceRegistrationProperties,
			NacosRegistration registration) {
		return new NacosAutoServiceRegistration(registry,
				autoServiceRegistrationProperties, registration);
	}

https://blog.csdn.net/ncuzengxiebo/article/details/80805786

8.Spring autoConfigure  通过标签进行自动化配置,带条件的初始化,以及配置先后顺序,具体Bean没有了后进行自动再注册(防止对象的销毁,跟对象的初始化进行处理)

具体标签说明:https://rensanning.iteye.com/blog/2363467

@Configuration
@EnableConfigurationProperties
@ConditionalOnNacosDiscoveryEnabled
@ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", matchIfMissing = true)
@AutoConfigureAfter({ AutoServiceRegistrationConfiguration.class,
		AutoServiceRegistrationAutoConfiguration.class })
public class NacosDiscoveryAutoConfiguration {

	@Bean
	public NacosServiceRegistry nacosServiceRegistry(
			NacosDiscoveryProperties nacosDiscoveryProperties) {
		return new NacosServiceRegistry(nacosDiscoveryProperties);
	}

	@Bean
	@ConditionalOnBean(AutoServiceRegistrationProperties.class)
	public NacosRegistration nacosRegistration(
			NacosDiscoveryProperties nacosDiscoveryProperties,
			ApplicationContext context) {
		return new NacosRegistration(nacosDiscoveryProperties, context);
	}

	@Bean
	@ConditionalOnBean(AutoServiceRegistrationProperties.class)
	public NacosAutoServiceRegistration nacosAutoServiceRegistration(
			NacosServiceRegistry registry,
			AutoServiceRegistrationProperties autoServiceRegistrationProperties,
			NacosRegistration registration) {
		return new NacosAutoServiceRegistration(registry,
				autoServiceRegistrationProperties, registration);
	}
}

9.SpringBoot使用ApplicationEvent&Listener完成业务解耦

https://www.jianshu.com/p/4359dd4b36a6?spm=a2c4e.11153940.blogcont637895.7.c88b509esJgXqx

10.Spring框架开发之SmartLifecycle接口

Spring加载和初始化所有bean后,接着执行一些任务或者启动需要的异步服务,当Spring容器加载所有bean并完成初始化之后,会接着回调实现该接口的类中对应的方法(start()方法)。 

https://blog.csdn.net/catoop/article/details/71274561

https://blog.csdn.net/zouhuixing/article/details/80304141

11.nacos discovery  流程原理

https://blog.csdn.net/Mr_Errol/article/details/84938993

https://blog.csdn.net/Mr_Errol/article/details/85089129

12.nacos 源码

https://www.jianshu.com/p/20ddf3bc6f8e

13.Spring boot 配置资源类 PropertySourceLocator  远程config读取主要类

例如nacos的配置中心:

@Order(0)
public class NacosPropertySourceLocator implements PropertySourceLocator

https://www.cnblogs.com/lizo/p/7683300.html

14.Spring boot  FailureAnalyzer  一种很好的方式在启动时拦截异常并将其转换为易读的消息,并将其包含在FailureAnalysis中。

public class NacosConnectionFailureAnalyzer
      extends AbstractFailureAnalyzer<NacosConnectionFailureException> {

   @Override
   protected FailureAnalysis analyze(Throwable rootFailure,
         NacosConnectionFailureException cause) {
      return new FailureAnalysis("Application failed to connect to Nacos server",
            "check your nacos server config", cause);
   }
}

同时META-INF/spring.factories中添加

org.springframework.boot.diagnostics.FailureAnalyzer=\
org.springframework.cloud.alibaba.nacos.diagnostics.analyzer.NacosConnectionFailureAnalyzer

因为SpringApplication.run执行时初始化了FailureAnalyzers

ApplicationArguments applicationArguments = new DefaultApplicationArguments(
      args);
ConfigurableEnvironment environment = prepareEnvironment(listeners,
      applicationArguments);
Banner printedBanner = printBanner(environment);
context = createApplicationContext();
analyzers = new FailureAnalyzers(context);
prepareContext(context, environment, listeners, applicationArguments,
      printedBanner);
refreshContext(context);
afterRefresh(context, applicationArguments);
listeners.finished(context, null);
stopWatch.stop();
if (this.logStartupInfo) {
   new StartupInfoLogger(this.mainApplicationClass)
         .logStarted(getApplicationLog(), stopWatch);
}
return context;

https://blog.csdn.net/mytt_10566/article/details/83963427

https://blog.csdn.net/lz710117239/article/details/80110736

15.AbstractHealthIndicator  

Spring 内部healthEndPoint 解析https://blog.csdn.net/qq_26000415/article/details/79065075

https://blog.csdn.net/liupeifeng3514/article/details/80558414

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值