容器技术

spring基础

≯℡__Kan透↙ 提交于 2019-12-02 08:50:34
一、Spring是什么 Spring是一种多层的J2EE应用程序框架,其核心就是 提供一种新的机制管理业务对象及其依赖关系 。 二、为什么要使用Spring 1. 降低组件之间的耦合度,实现软件各层之间的解耦。 Controller –> Service –> DAO 2. 可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务.也不需处理复杂的事务传播。 3. 容器提供单例模式支持,开发人员不再需要自己编写实现代码。 4. 容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能。 5. 容器提供的众多辅作类,使用这些类能够加快应用的开发,如: JdbcTemplate、 HibernateTemplate。 6. Spring对于主流的应用框架提供了集成支持,如:集成mybaties,Hibernate、JPA、Struts等,这样更便于应用的开发。 三、Spring的核心及其组成 1. 核心就是提供一种新的机制 管理业务对象及其依赖关系 。IoC(Inversion of Control 控制反转)/ DI (Dependency Injection依赖注入),AOP(面向切面编程)。 1.1 IoC : Inversion of Control (控制反转) : 就是把要在程序中实例化的对象配置到文件中

Spring容器启动源码解析

倾然丶 夕夏残阳落幕 提交于 2019-12-02 08:45:35
1. 前言   最近搭建的工程都是基于SpringBoot,简化配置的感觉真爽。但有个以前的项目还是用SpringMvc写的,看到满满的配置xml文件,却有一种想去深入了解的冲动。折腾了好几天,决心去写这篇关于Spring启动的博客,自己是个刚入职的小白,技术水平有限,也是硬着头皮看源码去Debug,很多不懂的地方还请谅解! 2. 概述   先给出几个让我头皮发麻的概念: web容器,Spring容器,SpringMvc容器   容器就是管理对象的地方,例如web容器就是管理servlet的地方,Spring容器就是管理Service,dao等Bean的地方,SpringMvc就是管理Controller等bean的地方(下文会做解释)。一个SpringMvc项目的启动离不开上述三个容器。所以这就是这篇文章的讲点,各个容器的启动过程解析。 3. Web容器初始化过程    官方文档是对于Web容器初始化时是这样描述的(英文不懂,已翻译成中文)   1. 部署描述文件(web.xml)中的<listener>标记的监听器会被创建和初始化   2. 对于实现了ServletContextListener的监听器,会执行它的初始化方法 contextInitialized()   3. 部署描述文件中的<filter>标记的过滤器会被创建和初始化,调用其init()方法   4.

Linux知识点整理

♀尐吖头ヾ 提交于 2019-12-02 08:10:01
Linux常见的分区模式 : mbr 1-4个主分区,2.2TB,命令:fdisk gpt 多个主分区,18EB,命令: parted swap 虚拟内存 :当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中. ssh免密登录 端口号:22 ssh-keygen 生成密钥对 ssh-copy-id 发送公钥 raid磁盘阵列 raid0:条带模式,至少2块磁盘,通过并发提高读写效率 raid1:镜像模式,至少2块磁盘,通过镜像备份提高磁盘的可靠性 raid10:条带+镜像,至少4块磁盘,提高读写效率和可靠性 raid5:高性价比模式,至少3块磁盘,1块存放恢复效验数据 raid6:相当于扩展版raid5,至少4块磁盘,2块存放效验数据 nfs :网络文件系统 2049 包:nfs-utils ,(rpcbind)作为依赖安装 NFS服务依赖于RPC(Remote Procedure Call)服务。nfsd默认端口2049,实际使用过程中因为需要提供不同的服务,因此NFS启动时还会随机调用系统的空闲端口。在centos5.x中默认调用1024以下端口,centos6

kubernetes介绍(1)

社会主义新天地 提交于 2019-12-02 05:35:19
一、kubernetes起源   Kubernetes (K8s) 是 Google 在 2014 年发布的一个开源项目。   据说 Google 的数据中心里运行着超过 20 亿个容器,而且 Google 十年前就开始使用容器技术。最初,Google 开发了一个叫 Borg 的系统(现在命令为 Omega)来调度如此庞大数量的容器和工作负载。在积累了这么多年的经验后,Google 决定重写这个容器管理系统,并将其贡献到开源社区,让全世界都能受益。   这个项目就是 Kubernetes。简单的讲,Kubernetes 是 Google Omega 的开源版本。   从 2014 年第一个版本发布以来,Kubernetes 迅速获得开源社区的追捧,包括 Red Hat、VMware、Canonical 在内的很多有影响力的公司加入到开发和推广的阵营。目前 Kubernetes 已经成为发展最快、市场占有率最高的容器编排引擎产品。 Kubernetes 一直在快速地开发和迭代。 二、Kubernetes 的几个重要概念   在实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石。 1、Cluster   Cluster 是 计算、存储和网络资源的集合 ,Kubernetes 利用这些资源运行各种基于容器的应用。 2、Master  

Spring简介即Spring Ioc和Spring Di

有些话、适合烂在心里 提交于 2019-12-02 05:18:40
Spring框架简介     Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。    spring的基本框架主要包含六大模块:DAO、ORM、AOP、JEE、WEB、CORE           Spring DAO :Spring提供了对JDBC的操作支持:JdbcTemplate模板工具类 。   Spring ORM :Spring可以与ORM框架整合。例如Spring整合Hibernate框架,其中Spring还提供HibernateDaoSupport工具类,简化了Hibernate的操作 。   Spring WEB :Spring提供了对Struts、Springmvc的支持,支持WEB开发

Spring

只愿长相守 提交于 2019-12-02 05:14:01
概述   Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。   Spring 框架是一个开源的 Java 平台,它最初是由 Rod Johnson 编写的,并且于 2003 年 6 月首次在 Apache 2.0 许可下发布。   Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。   Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO 编程模型来促进良好的编程实践。 体系结构   Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。下面的部分对在 Spring 框架中所有可用的模块给出了详细的介绍。   Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。    组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 核心容器 :核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory

Spring概念详解

坚强是说给别人听的谎言 提交于 2019-12-02 05:13:07
1、什么是 Spring ?   Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。    简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。 2. Spring 特点    ①、方便解耦,简化开发   通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。    ②、AOP编程的支持   通过Spring提供的AOP功能,方便进行面向切面的编程

Docker简介

感情迁移 提交于 2019-12-02 05:09:59
什么是Docker Docker是一个开源项目, 诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实现。项目后来加入了Linux基金会,遵从了Apache 2.0协议,项目代码在 Github 上进行维护。 Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker的基础是Linux容器(LXC)等技术。在LXC的基础上Docker进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作Docker的容器就像操作一个快速轻量级的虚拟机一样简单。 Docker 相比传统虚拟机有诸多优势。 1.启动速度更快: 秒级启动。 快速的部署和交付: 开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后, 运维人员可以直接使用这个容器来部署代码。 2.更高效的虚拟化: 它是内核级的虚拟化,因此可以实现更高的性能和效率。 3.高效的迁移: Docker可以运行在不同的平台,用户可以轻松的将一个应用从一个平台迁移到另一个平台。 4.节省开支: Docker容器除了运行其中应用外,基本不消耗额外的系统资源,一台设备可以运行上千个容器。 Docker基本概念 1.镜像(image) Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用

Spring详解

霸气de小男生 提交于 2019-12-02 05:03:05
Spring详解 1、什么是 Spring ? 2、Spring 起源 3、Spring 特点 4、Spring 框架结构 5、Spring 框架特征 6、Spring 优点 本系列教程我们将对 Spring 进行详解的介绍,相信你在看完后一定能够有所收获。 回到顶部 什么是 Spring ? Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。   简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。 Spring 起源 Rod Johnson在2002年编著的《Expert one on one J2EE design

[Kubernetes] [Kubernetes容器网络1] 容器网络基础

折月煮酒 提交于 2019-12-02 04:47:27
目录 浅谈容器网络 同一宿主机上的容器之间如何通信 两个不同宿主机上的容器之间如何通信 极客时间 张磊 深入剖析Kubernetes 课程笔记 浅谈容器网络 一个Linux容器的网络栈被隔离在自己的Network Namespace中,Network Namespace包括了:网卡(Network Interface),回环设备(Lookback Device),路由表(Routing Table)和iptables规则。 # 声明直接使用宿主机的网络栈 docker run -d -net=host --name nginx-host nginx 大多数情况下,都希望容器使用自己的网络栈:即拥有自己的IP地址和端口。 同一宿主机上的容器之间如何通信 那么宿主机上不同network namespace下的容器之间如何通信?Linux 网桥(Bridge) 网桥是Linux内核中的一个模块,作用类似于虚拟交换机,它工作在链路层,主要功能是将数据包根据MAC地址转发到不同的端口。 利用Veth Path作为“网线”将不同Network Namespace下的容器连接到网桥上。 启动一个容器查看其中的网络设备: # 在宿主机上 $ docker exec -it nginx-1 /bin/bash # 在容器里 root@2b3c181aecf1:/# ifconfig eth0: