3 IT拉菲

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 31w+

Docker生成镜像

有时候从Docker镜像仓库中下载的镜像不能满足要求,我们可以基于一个基础镜像构建一个自己的镜像两种方式: - 更新镜像:使用docker commit 命令 - 构建镜像:使用docker build 命令,需要创建Dockerfile文件更新镜像先使用基础镜像创建一个容器,然后对容器内容进行更改,然后使用docker commit 命令提交为一个新的镜像(以tomcat为例)。1.根据基础镜像,创建容器docker run --name candytomcat -p 8090:8080

2020-07-12 16:45:46

Docker介绍与简单操作

Docker 简介背景开发和运维之间因为环境不同而导致的矛盾集群环境下每台机器部署相同的应用DevOps(Development and Operations)简介Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用 Do

2020-07-12 15:32:28

springboot之事件监听机制

一、观察者模式1.涉及到的类public interface Observer { /* 观察者必须要实现这个接口,其实就相当于,A实现了这个接口,B发生改变的时候,顺便调用一下A的update方法。 */ void update(Observable o, Object arg);}//可以理解为,事件源和通知者的结合体//用大白话讲就是,我的XXX被改变了,然后我要通知一下所有观察我的人public class Observable { ……

2020-07-07 07:48:51

WebApplicationType分析

最近在研究Spring,先看一个简单的例子。@SpringBootApplicationpublic class SampleWebServicesApplication { public static void main(String[] args) { SpringApplication.run(SampleWebServicesApplication.class, args); }}SpringApplication源码public static ConfigurableApp

2020-07-05 14:15:16

MySQL

一、索引B+ Tree 原理1. 数据结构B Tree 指的是 Balance Tree,也就是平衡树。平衡树是一颗查找树,并且所有叶子节点位于同一层。B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具有 B Tree 的平衡性,并且通过顺序访问指针来提高区间查询的性能。在 B+ Tree 中,一个节点中的 key 从左到右非递减排列,如果某个指针的左右相邻 key 分别是 keyi 和 keyi+1,且不为 null,则该指针指向节点的所有 key 大于等于 keyi 且

2020-07-04 23:31:31

redis三个缓存问题 (缓存雪崩,缓存击穿,缓存穿透)

今天来看看redis三个缓存问题 (缓存雪崩,缓存击穿,缓存穿透)还是按照常规,来一张期待已久的图片简单说一下上面数据的流程:当用户发出一个请求,服务器会对其进行解析,然后就是去查找数据啦第一步去reids缓存查找数据,如果查到想要的数据就返回给用户如果在reids缓存汇总没有查找到数据,则进入mysql数据库查找数据,然后把数据结果返回给用户,同时将该数据写进redisredis缓存雪崩定义:当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB

2020-07-04 23:03:13

springboot源码1

Springboot源码一springboot源码解读,我们先从springboot的应用开始。@RestController修饰后的类里面的方法不用再使用@ResponseBody注解源码编译Spring Boot官方建议使用./mvnw clean install或者标准的mvn clean install命令来编译源代码,如果要使用标准的mvn命令的话,Maven的版本要求在3.5.0或以上。使用下面命令./mvnw clean install [-DskipTests -Pfast]mvn

2020-07-04 16:37:23

2020-07-04

最近除了睡觉,就是吃饭学习,每天大概能花16个小时在学习了,工作8小时,下班后也争取每天学习也8小时,我会尽量把博客完善的。

2020-07-04 01:53:41

使用springMvc模拟springboot

SpringMVC1, 添加jar依赖2,非web环境,程序的入口在main方法入口,而main函数的入口在listener中。初始化顺序是listener先于filter先于servlet。因此要添加一个listner。这里就有疑问了,难道时至今日,我们还要去在web.xml中去添加Listener?? 所以解决办法来了。3,手写一个类,实现WebApplicationInitializer接口,重写它的onStartup()方法,tomcat底层会自动去调用ServletContainerInit

2020-07-02 07:33:50

spring注解之@Import注解的三种使用方式

spring注解之@Import注解的三种使用方式目录1、@Import注解须知2、@Import的三种用法3、@Import注解的三种使用方式总结一、@Import注解须知1、@Import只能用在类上 ,@Import通过快速导入的方式实现把实例加入spring的IOC容器中2、加入IOC容器的方式有很多种,@Import注解就相对很牛皮了,@Import注解可以用于导入第三方包 ,当然@Bean注解也可以,但是@Import注解快速导入的方式更加便捷3、@Import注解有三种用法二

2020-07-01 00:57:33

Mybatis源码1

mybatis解析mapper.xml有四种方式,url,resource,package,class。第一种,class 基于mapper接口类具体路径配置这种情况下,如果是非注解模式的话xml配置文件必须和这个类在同一级目录,且与Mapper类同名。项目结构类似第二种: 基于mapper类所在包的package路径配置其实这算是第一种的一个变种。一个配置mapper类,每次新加删除比较麻烦,直接扫描mapper类所在包。项目结构类似第三种: 把 Mapper 的xml配置文件单独放置到

2020-06-29 21:15:34

CGLIB原理及实现机制

CGLIB原理及实现机制什么是CGLIBCGLIB(Code Generator Library)是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)。为什么使用CGLIBCGLIB代理主要通过对字节码的操作,为对象引入间接级别,以控制对象的访问。我们知道Java中有一个动态代理也是做这个事情的,那我们为什么

2020-06-17 08:45:45

spring提供干涉Spring工厂的方法---草稿版

spring提供了两种方式允许我们来参与bean工厂的建设1,BeanFactoryPostProcessor,实现这个接口,重写它的方法,可以拿到beanFactory对象,修改bd的属性2,ImportBeanDefinitionRegistrar实现这个接口,重写它的方法,可以使beanFactory的BeanDefinitionMap暴露出来。向spring工厂注册bd有以下几种方法applicationContext.register() 需要一个类参数,程序员无法参与过程appli

2020-06-13 22:48:09

spring源码解析三

前面两讲讲到了应用上下文的初始化,比较重要的点就是在初始化Reader读取器时,会想spring的bean工厂添加6个beanDefinition对象。而register(componentClasses)也不过是将配置类转化为bd,交给spring的bean工厂。前面对于refresh()方法却讲解的比较少,今天我们就来详细讲解refresh()方法。/** * spring初始化spring环境 * @throws BeansException * @throws IllegalState

2020-06-13 19:31:32

代理设计模式-Proxy

设计模式—proxy什么是代理增强一个对象的功能买火车票,app就是一个代理,他代理了火车站,小区当中的代售窗口java当中如何实现代理java实现的代理的两种办法代理的名词代理对象 增强后的对象目标对象 被增强的对象他们不是绝对的,会根据情况发生变化静态代理继承 :代理对象继承目标对象,重写需要增强的方法; 缺点:会代理类过多,非常复杂聚合: 目标对象和代理对象实现同一个接口,代理对象当中要包含目标对象。 缺点:也会产生类爆炸,只不过

2020-05-24 18:28:37

spring-aop应用

自定义注解XML文件用于描述元数据 自定义注解与xml一样,也是用于,描述元数据。 话不多说,我们来一个demoimport java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/*** 自定义注解中,有很多方法* 元数据是修饰注解的数据

2020-05-23 12:47:51

spring-ioc应用2

spring懒加载官网已经解释的非常清楚了:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-lazy-init值得提醒的是,如果你想为所有的对象都实现懒加载可以使用官网的配置springbean的作用域文档参考:https://docs.spring.io/spring-framework/docs/current/spring-frame

2020-05-21 00:37:39

spring-ioc应用

IOC(Inversion of Control)控制反转, 将对在自身对象中的一个内置对象的控制权反转。所谓的反转,即把内置对象的控制权反转给一个容器,而应用程序只需要提供对象的类型即可。是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)IOC是一种需要达到的目标,DI和DL是实现的手段。他们之间的关系就像ORM(关系映射)和mybatis

2020-05-18 00:16:17

Python03-函数与过程编程

定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可特性:1. 减少重复代码2. 使程序变的可扩展3. 使程序变得易维护语法定义:def sayhi(x,y):#函数名,定义过程和函数都是与def开始,然后是函数名(),函数可以带形参 '''文档注释,对方法进行说明''' print("Hello, I'm nobody!") return Xxx #带返回值得称为函数,不带返回值得称为过程。函数可以返回多个obje

2020-05-13 00:54:36

spring源码分析五-日志体系

日志spring5日志打印使用的是 java.util.logging,也会使用jcl,只不过是srping-jclspring4日志打印使用的是log4j,使用的是jcl,即commons-logging.jarjava常用的日志结束:log4j, logback,log4j2, jul(java.util.logging,也就是jdk14Logger), slf4j, simple-log, jcl(jakata commons-loging,jcl现在已经停止更新,比jcl更优秀的slf

2020-05-12 21:34:57

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。