自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

04stone37

日积月累

  • 博客(28)
  • 收藏
  • 关注

原创 跨代引用

什么是跨代引用?  跨代引用是指新生代中存在对老年代对象的引用,或者老年代中存在对新生代的引用,如下图所示: 跨代引用存在问题  YGC时,为了找到年轻代中的存活对象,不得不遍历整个老年代;反之亦然。这种方案存在极大的性能浪费。因为跨代引用是极少的,为了找出那么一点点跨代引用,却得遍历整个老年代!解决方案:记忆集  记忆集就是用来记录跨代引用的表,通过引入记忆集避免遍历老年代...

2018-07-30 17:41:58 3394

原创 InnoDB VS MyISAM

区别事务:InnoDB支持事务,而MyISAM不支持;行锁:InnoDB支持行锁,而MyISAM不支持;索引:InnoDB是聚簇索引,数据和索引在同一个文件;而MyISAM是非聚簇索引,数据和索引是独立的;全文索引:InnoDB不支持全文索引,而MyISAM支持;统计行数:InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描;而MyI...

2018-07-29 09:46:14 342

原创 RESTFUL理解

RESTful是什么?  Http协议作者提倡的一种协议使用风格:用HTTP动词(GET,POST,DELETE等)描述操作,用URL定位资源;RESTful提出背景  随着Http协议的广泛使用,越来越多的开发人员都将其作为传输协议,而非原先设计者所考虑的应用协议。SOAP类型的WebService就是最好的例子,SOAP消息完全就是将Http协议作为消息承载,以至于对于Http...

2018-07-27 11:24:09 231

原创 前后端分离演化史

什么是前后端分离?过去,前后端分离是从物理上做区分的:认为只要是客户端的就是前端,服务器端的就是后端;当前,前后端分离从职责上进行划分:前端负责 View 和 Controller 层,后端只负责 Model 层; MVC模式 缺点:前后端代码混杂在一起,前端开发重度依赖后端的开发环境,且部署成本大;前后端职责不够明确,Controller仍处于灰色地带,页面路由等功...

2018-07-24 17:05:14 1966

原创 @EnableAspectJAutoProxy

作用  开启切面编程功能;使用 @Configuration @EnableAspectJAutoProxy public class AppConfig { }原理通过@Import导入AspectJAutoProxyRegistrar;通过@Configuration解析器注册AnnotationAwareAspectJAutoProxyC...

2018-07-22 19:20:49 3371

原创 AOP基础概念

基础概念连接点JoinPoint:某个具体方法;切点PointCut:用AspectJ切面编程语言描述的规则,给满足规则的连接点添加Advice;增强Advice:增强逻辑;切面Aspect:PointCut和Advice的组成;将增强逻辑织入目标对象的过程;开启切面编程方式一:注解@EnableAspectJAutoProxy与@Configuration搭配...

2018-07-22 15:34:45 125

原创 Spring 容器创建和Bean生命周期

生命周期详解参考:https://www.cnblogs.com/zrtqsk/p/3735273.html;

2018-07-19 17:36:39 196

原创 Bean属性设置过程

分类Bean属性设置分为两大类,如下:将外部配置文件中的值设置为属性值,常用@PropertySource和@Value组合;将容器中其它bean注入,常用@Autowired或@Resouce注解;处理器AutowiredAnnotationBeanPostProcessor处理逻辑分为两大步,如下:作为接口MergedBeanDefinitionPostProc...

2018-07-19 12:06:00 520

原创 Bean的初始化过程

初始化过程  bean实例化 –> 属性设置 –> afterPropertiesSet() –> init-method 初始化实现注解@Bean  通过注解@Bean属性initMethod和destroyMethod设置初始化和销毁方法;接口InitializingBean  对于InitializingBean的实现类,Sprin...

2018-07-18 21:27:14 942

原创 BeanFactoryPostProcessor

作用  在BeanFactory加载完所有bean定义后,对BeanFactory进行逻辑增强;public interface BeanFactoryPostProcessor { /** * Modify the application context's internal bean factory after its standard * initial...

2018-07-17 14:49:56 179

原创 BeanPostProcessor

作用  Bean的后置处理器,在初始化方法init-method前后,进行逻辑增强,Spring内置了很多实现类,常见的有ApplicationContextAwareProcessor、AutowiredAnnotationBeanPostProcessor等等,定义如下所示:public interface BeanPostProcessor { /** * App...

2018-07-16 11:07:48 657

原创 scan流程

扫描流程将basePackage路径下的所有class文件加载到内存;根据类的元信息进行过滤(excludeFilters/includeFilters); protected boolean isCandidateComponent(MetadataReader metadataReader) throws IOException { for (TypeFil...

2018-07-16 09:40:10 406

原创 HTTP/2连接建立过程

连接过程  HTTP/2连接建立过程可以分为两大步:协议协商(Http1.x升级到Http2.0);连接的初始化;协议协商协议流程Netty实现Client发送升级请求pipeline中添加handler: private void configureClearText(SocketChannel ch) { HttpClientCod...

2018-07-13 10:23:48 3914

原创 Mqtt功耗测试

参考:http://stephendnicholas.com/posts/power-profiling-mqtt-vs-https

2018-07-10 09:56:00 1809

原创 Service Mesh学习资料整理

Service Mesh中文社区:http://www.servicemesher.com/;敖小剑个人网站:https://skyao.io/#about;

2018-07-09 20:52:04 1072 1

原创 Maven单继承问题

单继承parent  在maven多模块项目中,为了方便依赖的统一管理,引入parent标签。以SpringBoot为例进行说明,在parent的dependencyManagement中对子模块的所有依赖进行声明,如下所示: <dependencyManagement> <dependencies> <!-- Spri...

2018-07-09 10:59:23 751

转载 消息中间件MetaQ高性能原因分析

转载:https://yq.aliyun.com/articles/52533?spm=a2c4e.11153940.blogcont93815.18.626e2684nqgU88#序列化和反序列化各序列化框架时间性能对比: 各序列化框架空间性能对比:   综合来看,Google的Protocol Buffers是最佳选择,不管软件的质量、社区活跃、软件的后续发展上来说,都...

2018-07-09 09:33:49 519

原创 微服务/ Spring Boot / Spring Cloud

微服务  微服务是一种“化整为零、分而治之”的思想。具体而言,微服务提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。  “Microservices”概念的提出者Martin Fowler的描述如下...

2018-07-08 16:33:22 251

原创 微服务架构选型:Dubbo VS Spring Cloud

定位  Dubbo 的定位始是RPC 框架,而 Spring Cloud 的目标是微服务架构下的一站式解决方案。在架构功能角度, Dubbo是Spring Cloud的一个子集,具体对比如下: RPC vs REST代码侵入性。对于RPC调用方式,服务提供方和调用方之间需要强依赖接口,存在代码级别的入侵;对于REST调用方式,服务提供方和调用方之间只有约定,没有代码上的侵入;...

2018-07-08 15:54:47 729

原创 ConfigServer架构

ConfigServer2.0架构Consumer/Provider启动时,通过统一域名从Address Server获取ConfigServer集群的地址列表;Provider随机选取一台机器建立长连接,并进行服务注册;ConfigServer集群中的机器接受到服务注册信息后,广播到集群其它机器;ConfigServer集群中的机器推送对应的服务注册信息到连接的Consumer;...

2018-07-07 17:56:50 2992 1

原创 Eureka

Eureka简介  Eureka是Netflix出品的用于实现服务注册和发现的工具,类似于阿里的ConfigServer,其架构如下所示: Eureka VS ZooKeeper  二者最本质区别:在CAP原则中,Eureka保证AP,ZooKeeper保证CP。在服务发现领域,更重要的是可用性,可接受短暂的数据不一致情况,因此在服务发现领域,Eureka比ZooKeeper更适合。...

2018-07-07 11:19:03 336

原创 Spring Boot配置文件

配置获取顺序      多环境配置命名规范: application-{profile}.properties,profile表示不同环境,如日常、预发和线上等; 文件路径:与application.properties相同; 环境指定:在application.properties文件中进行设定:spring.profiles.active={profile}; 使用说明:...

2018-07-04 19:19:16 218

原创 Starter Pom

作用  在POM文件添加场景所需的Starter Pom,Spring Boot会自动配置相应的Bean,不需要XML配置文件;Spring Boot内置的Starter Pom  Spring Boot内置的Starter Pom统一集中在spring-boot-autoconfigure包中,如下图所示: 关键技术点META-INF/spring.factories中需...

2018-07-04 12:25:05 425

原创 Spring Boot日志配置

日志体系  Spring Boot 使用commons-logging作为日志接口,目前支持Log4J2、Logback和JUL( Java Util Logging) 三种实现方式,如下图所示: spring-boot-starter-logging作用:使用Logback日志框架; 实现原理:如果存在slf4j接口,则将其桥接到commons-logging;使用L...

2018-07-03 17:00:49 257

原创 自动配置@EnableAutoConfiguration

作用  根据pom中添加的jar依赖自动配置Spring,比如添加spring-boot-starter-web,Spring Boot会自动添加Tomcat和Spring MVC相关配置。自动装配原理  @EnableAutoConfiguration实现的关键在于引入了AutoConfigurationImportSelector,其核心逻辑为selectImports方法,逻辑大...

2018-07-02 19:56:09 4371

原创 SpringApplication构造过程分析

构造函数设置Spring容器的初始化逻辑ApplicationContextInitializer;设置Spring容器的监听器ApplicationListener;获取启动类的Class对象;public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) { ...

2018-07-02 10:18:56 257

原创 组合注解与元注解

概念元注解: 可以注解到别的注解上的注解;组合注解:被注解的注解;组合注解好处简单化注解配置,一个组合注解可以代表多个有特定属性值的元注解;提供了很好的扩展性,可以根据实际需要灵活的自定义注解。@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @inter...

2018-07-01 11:38:04 1285

原创 @Configuration

作用  声明当前类是一个配置类,相当于一个Spring的XML配置文件,与@Bean配合使用。    Instead of using the XML files, we can use plain Java classes to annotate the configurations by using the @Configuration annotation. If you an...

2018-07-01 09:12:14 6226

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除