沉淀再出发:Spring的架构理解 一.前言 在Spring之前使用的EJB框架太庞大和重量级了,开发成本很高,由此spring应运而生.关于Spring,学过java的人基本上都会慢慢接触到,并且在面试的时候也是经常遇到的,因为这个技术极大地方便了我们的开发和部署,并且由此衍生出来的框架和思想在很多地方都有使用,比如Spring mvc,Spring boot,Spring cloud等等框架以及IoC和AOP这两个Spring最本质的思想.可以说一切的本质都是为了高内聚,松耦合,将不同的事物…
沉淀再出发:spring boot的理解 一.前言 关于spring boot,我们肯定听过了很多遍了,其实最本质的东西就是COC(convention over configuration),将各种框架组装起来,省去了我们配置各种框架的时间,是一种更高层次的封装和抽象,正如maven整合了很多的jar包一样,spring boot整合了很多的框架和操作,我们只需要简单的加载进来就可以使用了,这极大地方便了我们的程序开发效率. 二.spring boot的使用 2.1.Spring Boot核心…
沉淀再出发:关于java中的AQS理解 一.前言 在java中有很多锁结构都继承自AQS(AbstractQueuedSynchronizer)这个抽象类如果我们仔细了解可以发现AQS的作用是非常大的,但是AQS的底层其实也是使用了大量的CAS,因此我们可以看到CAS的重要性了,但是CAS也是有缺陷的,但是在大部分使用的情况下,我们往往忽略了这种缺陷. 二.AQS的认识 2.1.AQS的基本概念 AQS(AbstractQueuedSynchronizer)就是抽象的队列式的同步器,AQS定义了…
沉淀再出发:关于netty的一些理解和使用 一.前言 Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序.也就是说,Netty 是一个基于NIO的客户.服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户.服务端应用.Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发.“快速”和“简单”并不…
沉淀再出发:在python3中导入自定义的包 一.前言 在python中如果要使用自己的定义的包,还是有一些需要注意的事项的,这里简单记录一下. 二.在python3中导入自定义的包 2.1.什么是模块.包.库? 模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块.  包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和子目录,假如子目录中也有 __init__.py,那么它就是这个包的子包了.  库:…
沉淀再出发:jetty的架构和本质 一.前言 我们在使用Tomcat的时候,总是会想到jetty,这两者的合理选用是和我们项目的类型和大小息息相关的,Tomcat属于比较重量级的容器,通过很多的容器层层包裹提供了非常强大的web功能,但是可以自我定制的余地就非常小了,有的时候我们希望自己设计更多的请求接收,处理和返回的环节,就可以用更加轻量级的jetty了. 二.jetty的架构和原理 2.1.Jetty 的基本架构 Jetty 是一个Servlet 引擎,它的架构比较简单,是一个可扩展性和非常…
沉淀再出发:dubbo的基本原理和应用实例 一.前言 阿里开发的dubbo作为服务治理的工具,在分布式开发中有着重要的意义,这里我们主要专注于dubbo的架构,基本原理以及在Windows下面开发出来的实例来解释和介绍,从而使得dubbo不再神秘. 二.dubbo的架构和原理 2.1.dubbo的架构 Dubbo框架设计一共划分了10个层,而最上面的Service层留给实际想要使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层.左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提…
沉淀再出发:Bean,JavaBean,POJO,VO,PO,EJB等名词的异同 一.前言 想必大家都有这样的困惑,接触的东西越多却越来越混乱了,这个时候就要进行对比和深入的探讨了,抓住每一个概念背后的核心,才能彻底的解决问题,形成自己的理念和道理. 二.Bean,JavaBean,POJO,VO,PO,EJB等名词的比较 2.1.Bean Bean的中文含义是“豆子”,Bean的含义是可重复使用的Java组件.所谓组件就是一个由可以自行进行内部管理的一个或几个类所组成.外界不了解其内部信息和运…
沉淀再出发:java中注解的本质和使用 一.前言 以前XML是各大框架的青睐者,它以松耦合的方式完成了框架中几乎所有的配置,但是随着项目越来越庞大,XML的内容也越来越复杂,维护成本变高.于是就有人提出来一种标记式高耦合的配置方式——注解.方法上可以进行注解,类上也可以注解,字段属性上也可以注解,反正几乎需要配置的地方都可以进行注解.关于注解和XML两种不同的配置模式,争论了好多年了,各有各的优劣,注解可以提供更大的便捷性,易于维护修改,但耦合度高,而XML相对于注解则是相反的.追求低耦合就要抛…
沉淀再出发:IoC和AOP的本质 一.前言 关于IoC和AOP这两个概念,如果我们没有深入的理解可以说是根本就不理解Spring这个架构的,同样的由Spring演变出来的Spring Boot和Spring Cloud,以及Spring MVC,我们就更不能说得上理解了.可以说控制反转和面向切面编程是Spring中最精髓的部分,本质都是为了松耦合,使得我们的代码能够从繁杂的工作之中抽离出来,只关注最重要的部分,不做重复的事情,而要做到这一点,我们需要的就是一个xml文件而已,理解了这一点,我们就…