![](https://img-blog.csdnimg.cn/20210429100524396.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
容器与框架
文章平均质量分 95
虚拟化技术已经成为一种被大家广泛认可的服务器资源共享方式,它可以在按需构建操作系统实例的过程当中为系统管理员提供极大的灵活性。由于hypervisor虚拟化技术仍然存在一些性能和资源使用效率方面的问题,因此出现了一种称为容器(Container)的新型虚拟化技术来帮助解决这些问题。
GeorgiaStar
世上无难事,只要肯放弃
展开
-
Spring源码分析——一次HTTP请求在Spring中的处理过程
在网上有很多Spring处理请求的流程图,但是都是比较简单的过程,都是围绕的DispatcherServlet进行说明的,这里我们将从一个请求如何进入spring中开始,到返回结果结束进行说明。原创 2021-05-13 21:37:44 · 2781 阅读 · 0 评论 -
Spring源码分析——Bean的注册
背景Spring版本:5.1.14.RELEASE仔细阅读依赖注入(Dependency Injection)框架是如何实现的这篇博文后,我们大致知道了一个DI容器是如何创建bean的。总体来,bean的创建流程分为如下三步:定义化:从xml文件中解析bean的定义(获得BeanDefinition实例),之后创建bean都是通过bean的定义去创建。实例化:实例化的过程是一个创建Bean的过程,即调用Bean的构造函数,单例的Bean放入单例池中。初始化:初始化的过程是一个赋值的过程,即调用B原创 2021-05-12 10:42:38 · 568 阅读 · 0 评论 -
观察者模式及EventBus框架简单实现
观察者模式:在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。一般情况下,被依赖的对象叫作被观察者(Observable),依赖的对象叫作观察者(Observer)原创 2020-05-08 10:11:30 · 1618 阅读 · 0 评论 -
Spring源码分析——Bean的加载
Spring版本:5.1.14.RELEASEBean实例创建过程如下图,Bean的创建过程大部分是在docreateBean()里面完成的。原创 2020-12-03 11:29:24 · 253 阅读 · 1 评论 -
一步一步剖析Mybatis Plugin拦截器原理
责任链模式的定义:多个处理器依次处理同一个业务请求。一个业务请求先经过A拦截器处理,然后再传递给B拦截器,B拦截器处理完后再传递给C拦截器,以此类推,形成一个链条。链条上的每个拦截器各自承担各自的处理职责,所以叫作责任链模式。利用JDK动态代理可以组织多个拦截器,通过这些拦截器我们可以在业务方法执行前后做很多想做的事。具体分析可以从一个普通的需求开始:现在要对多个接口的业务方法做一个日志记录和方法执行耗时的统计。静态代理模式肯定不行,如果这样的接口很多,代理类就会爆炸,要用动态代理。JDK动态代理p原创 2020-07-09 19:58:36 · 1139 阅读 · 0 评论 -
依赖注入(Dependency Injection)框架是如何实现的
DI容器的核心功能一般有三个:配置解析、对象创建和对象生命周期管理转载 2020-11-09 13:49:58 · 2287 阅读 · 0 评论 -
Spring的一些知识点总结
什么是spring?Spring是一个轻量级Java开发框架,最早由Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。是一个分层的Java SE/Java EE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些原创 2020-05-14 21:51:51 · 409 阅读 · 0 评论 -
Java Web程序在Tomcat上是如何运行的
一个 JVM 是一个进程,JVM 上跑 Tomcat,Tomcat 上可以部署多个应用。这样的话,每个跑在 Tomcat 上的应用是一个线程吗?如果一个应用 crash 了,其他应用也会crash吗?理解程序运行时的执行环境,直观感受程序是如何运行的,对我们开发和维护软件很有意义。我们以上面这个问题为例,看下 Java Web 程序的运行时环境是什么样的,来梳理下进程、线程、应用、Web 容器、...转载 2020-02-18 18:44:09 · 4857 阅读 · 4 评论 -
Spring在SingleTon模式下的线程安全
1、有状态的bean与无状态的bean有状态bean:每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即有状态;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。即每个用户最初都会得到一个初始的bean。无状态bean:bean一旦实例化就被加进会话池中,各个用户都可以共用。即使用户已经消亡,bean的生命期也不一定结束,它可能依然存在于会话池中,供其他用...原创 2019-09-15 12:31:09 · 4845 阅读 · 1 评论 -
CPU、Load、内存及网络等系统指标异常的排查
背景日常工作中,在衡量服务器的性能时,经常会涉及到几个系统指标,load、cpu、mem、qps、rt等。每个指标都有其独特的意义,很多时候在线上出现问题时,往往会伴随着某些指标的异常。大部分情况下,在问题发生之前,某些指标就会提前出现异常。对于这些指标的理解、查看、异常解决等,是程序员的必备技能。本文、主要介绍一下这几个系统指标——系统负载(load)、cpu利用率、内存使用率、网络IO、磁...原创 2019-08-25 11:25:22 · 6367 阅读 · 2 评论 -
理解Java ClassLoader
ClassLoader是Java最为神秘的技术之一,无数人被它伤透了脑筋,摸不清门道究竟在哪里。网上的文章也是一篇又一篇,经过本人的亲自鉴定,绝大部分内容都是在误导别人。本文我带读者彻底吃透 ClassLoader,以后其它的相关文章你们可以不必再细看了。ClassLoader 做什么的?顾名思义,它是用来加载 Class 的。它负责将 Class 的字节码形式转换成内存形式的 Class 对...转载 2019-01-05 13:16:42 · 829 阅读 · 1 评论 -
MyBatis中的动态SQL
1、静态SQL与动态SQL 首先,所谓SQL的动态和静态,是指SQL语句在何时被编译和执行,二者都是用在SQL嵌入式编程中的,这里所说的嵌入式是指将SQL语句嵌入在高级语言中,而不是针对于单片机的那种嵌入式编程。 在某种高级语言中,如果嵌入了SQL语句,而这个SQL语句的主体结构已经明确,例如在Java的一段代码中有一个待执行的SQL语句:“select * from t1原创 2017-08-06 11:54:02 · 3032 阅读 · 7 评论 -
iBatis简介及其不适用场合
1、iBatis与Hibernate简单对比hibernate 是当前最流行的O/R mapping框架,它出身于sf.NET,现在已经成为JBoss的一部分了。ibatis 是另外一种优秀的O/R mapping框架,目前属于Apache的一个子项目了。 相对hibernate “o/r”而言,ibatis是一种“sql mapping”的orm实现。 hibernate对数据库结构原创 2017-02-28 21:18:48 · 548 阅读 · 0 评论 -
Java类加载机制与Tomcat类加载器架构
Java类加载机制类加载器虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最初是为了满足Java Applet的需求而开发出来的。虽然目前Java A原创 2017-02-26 10:58:11 · 15399 阅读 · 11 评论 -
SpringMVC入门及HelloWorld工程实例
MVC是什么模型—视图—控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式。它主要通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中解耦。通常,模型负责封装应用程序数据在视图层展示。视图仅仅只是展示这些数据,不包含任何业务逻辑。控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。原创 2017-03-04 20:29:14 · 939 阅读 · 0 评论 -
从Hadoop框架与MapReduce模式中谈海量数据处理
从hadoop框架与MapReduce模式中谈海量数据处理前言 几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,觉得它们很是神秘,而神秘的东西常能勾起我的兴趣,在看过介绍它们的文章或论文之后,觉得Hadoop是一项富有趣味和挑战性的技术,且它还牵扯到了一个我更加感兴趣的话题:海量数据处理。 由此,最近凡是空闲时,便在看转载 2017-05-25 15:16:25 · 801 阅读 · 0 评论 -
Spring MVC简述:从MVC框架普遍关注的问题说起
摘要: 任何一个完备的MVC框架都需要解决Web开发过程中的一些共性的问题,比如请求的收集与分发、数据前后台流转与转换,当前最流行的SpringMVC和Struts2也不例外。本文首先概述MVC模式的分层思想与MVC框架普遍关注的问题,并以此为契机结合SpringMVC的入门级案例简要地从原理、架构角度介绍了它对这些问题的处理,包括请求处理流程、消息转换机制和数据绑定机制等核心问题。最后,本转载 2017-06-15 11:23:32 · 803 阅读 · 0 评论 -
AOP的实现原理—反射与动态代理
其实AOP的意思就是面向切面编程。OO注重的是我们解决问题的方法(封装成Method),而AOP注重的是许多解决解决问题的方法中的共同点,是对OO思想的一种补充!还是拿人家经常举的一个例子讲解一下吧:比如说,我们现在要开发的一个应用里面有很多的业务方法,但是,我们现在要对这个方法的执行做全面监控,或部分监控。也许我们就会在要一些方法前去加上一条日志记录,我们写个例子看看我们最简单的解决方案。p原创 2017-03-12 11:01:39 · 13736 阅读 · 3 评论 -
IOC的实现原理—反射与工厂模式
反射机制概念我们考虑一个场景,如果我们在程序运行时,一个对象想要检视自己所拥有的成员属性,该如何操作?再考虑另一个场景,如果我们想要在运行期获得某个类的Class信息如它的属性、构造方法、一般方法后再考虑是否创建它的对象,这种情况该怎么办呢?这就需要用到反射!我们.Java文件在编译后会变成.class文件,这就像是个镜面,本身是.java,在镜中是.class,他们其实是一样的;那么原创 2017-03-12 10:37:17 · 45835 阅读 · 18 评论 -
Spring中bean的作用域与生命周期
在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。而bean的定义以及bean相互间的依赖关系将通过配置元数据来描述。 Spring中的bean默认都是单例的,这些单例Bean在多线程程序下如何保证线程安全呢?例如对于Web应用来原创 2017-06-17 22:29:18 · 129464 阅读 · 15 评论 -
Web容器安全管理(上)——Java EE的安全概念
每个人都知道安全(Security)很重要,特别是在应用程序发布到网络上之后,安全就更为重要了,但要实现安全管理,问题却很多。原因之一是安全观念及意识不是朝夕即可养成;二是实现时的各种疏忽。 到目前为止,Web容器已经实现了许多功能,而在安全这方面,容器也提供了机制来满足安全的基本需求,当没办法做得更好时,适当地使用容器进行安全管理不仅方便,而且有一定的防护效果。 为了更好地了解并实现Web原创 2017-06-11 12:01:09 · 1771 阅读 · 0 评论 -
Web容器安全管理(下)——容器基本身份验证
为了更好地了解并实现Web容器的安全管理,笔者以两篇博客的篇幅来介绍,即:《Web容器安全管理(上)——Java EE的安全概念》 和 《Web容器安全管理(下)——容器基本身份验证》。上篇博客已经介绍了Java EE安全的基本概念,打下了基础。在本文,我们详述Web容器提供的基本身份验证方式。1、容器声明式基本身份验证 假设你已经开发好了应用程序,现在想针对几个页面进行保护,只有通过身份验证且原创 2017-06-12 11:51:32 · 2713 阅读 · 0 评论 -
使用Spring Boot进行Java EE开发
Spring Boot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易得创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验,让Java开发也能够实现Ruby on Rails那样的生产效率。为Spring生态系统提供了一种固定的、约定优于配置风格的框架。 多年以来,Spring IO平台饱受非议的一点就是大量的XML配置以及复杂的依赖管理。在Spr原创 2017-06-15 17:36:21 · 5045 阅读 · 1 评论 -
Spring及Spring MVC总结
一、Spring概述 Spring是一个分层的Java SE/EE应用一站式的轻量级开源框架,其从持久层、业务层到表现层都拥有相应的支持,几乎为企业应用提供了所需的一切。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。它的核心是IOC和AOP,如下图所示,整个原创 2017-07-09 12:47:43 · 1151 阅读 · 0 评论 -
Docker简要介绍
1、为什么Docker有价值为什么Docker这么有价值?在回答这个问题之前,我们先想一个相似的问题,为什么阿里巴巴这么有价值?传统的商业存在两大弊端:一是买卖双方相对分散,加大了需求收集、营销、运输的成本;二是买卖双方信息不对称,对交易产生了抑制作用。电子商务的出现则将商品从卖方到买方的流通过程变得集中化、标准化、透明化:集中化:买家足不出户就能从各个商户集中购买商品,卖家根据买原创 2017-01-19 14:55:25 · 2401 阅读 · 0 评论