• 高级
文章平均质量分 90
卡夫卡的熊kfk
总之岁月漫长,然而值得等待
展开
-
Springboot+Springmvc实现登录拦截(附源码)
Springmvc中的拦截器是用来拦截用户请求,并进行相应处理的。比如通过拦截器来进行用户权限验证,或者用来判断用户是否已经登录等。今天我们就在Springboot环境下实现登录拦截。...转载 2019-08-04 15:08:26 · 4736 阅读 · 3 评论 -
Springboot+Springmvc实现文件的上传和下载(附源码)
文件上传实现文件上传的方式挺多的,比如通过IO流的方式,通过file.Transto的方式,通过springmvc提供的方式。总体比较下来,最后一种效率更高。文件下载...原创 2019-08-04 09:25:44 · 7920 阅读 · 7 评论 -
小仙女讲Springmvc(3)——数据相关
这篇我们说说Springmvc数据相关的应用,包括数据转换、格式化和数据校验。数据转换数据转换可以将任意类型转换成另一种类型。格式化格式化是只能将String转换成另一种Java类型。数据校验数据校验是使用JSR 303进行验证。...原创 2019-08-03 16:30:38 · 519 阅读 · 0 评论 -
【Springcloud】综述
what?quartz是啥?why?有啥用?how?怎么用?原创 2019-07-30 18:02:12 · 710 阅读 · 7 评论 -
【Springcloud】详解Config(配置中心)
Config是什么?Config是为分布式系统中的基础设施和微服务应用提供集中化的外部配置,默认采用Git来存储配置信息。它分为两部分:服务端又称为分布式配置中心,是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口。客户端指的是各个微服务应用或基础设施,通过制定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加...原创 2019-07-30 17:54:38 · 1978 阅读 · 1 评论 -
【Springcloud】详解Zuul(API网关)
今天我们说说Springcloud的另一个组件——Zuul。其就像一个城堡的大门,如果想进入城堡,必须经过它的“导航”和“过滤”。Zuul是什么?Zuul是API网关,存在于前端和后端之间,所有的前端请求访问都需要经过它来调度和过滤。它提供了路由、服务器负载均衡、安全等功能。路由详解路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础。路由配置分为传统路由配置和服...原创 2019-07-30 17:54:06 · 471 阅读 · 0 评论 -
小仙女讲Springmvc(2)——常用注解
今天我们说说Springmvc的常用注解。这些注解基本都是平时开发在用,我们把他们串起来,系统总结一遍。@Controller@RequestMapping@RequestParam@PathVariable@MatrixVariable@CrossOrigin@RequestHeader@CookieValue@@RequestBody...原创 2019-08-02 17:05:13 · 849 阅读 · 1 评论 -
用租房经历来类比Springmvc的执行流程
本仙女最近想来人间住一段时间,所以打算租个房子。听说“链家”不错,我要进去看看。进门,确定管家(1)去链家找房一个管家迎接你,问你有啥需求。是打算买卖房子还是租房子租房子,想找个3室2厅的找对应的户型(2)管家根据你的需求去电脑系统中找。你想找三室的,总不能给你搜一室一厅的吧根据请求url查找Handler去实地看看(3)找到几家看着不错,去实地看看,是否符合自己的心意。其中,...原创 2019-08-02 17:00:49 · 1129 阅读 · 10 评论 -
【Springcloud】详解Feign(服务调用)
今天我们讲Springcloud中的第四个组件——粪,不是,Feign。Feign是什么?Ribbon配置Feign的客户端负载均衡是通过Ribbon实现的,所以我们可以直接通过配置Ribbon客户端的方式来定义各个服务客户端调用的参数。Feign是什么?Feign是什么?...原创 2019-07-30 10:10:51 · 1094 阅读 · 0 评论 -
小仙女讲Springmvc——概述
大家好,你有没有被小哪吒圈粉?嘻嘻嘻,见到小哪吒,秒变小迷妹~~好了,说正题~本仙女写了5篇博客来讲述Springmvc的技术点,理论和实践相结合,浓而不烈,甜而不腻。欢迎大家翻阅。目录用租房经历来类比Springmvc的执行流程小仙女讲Springmvc(2)——常用注解小仙女讲Springmvc(3)——数据相关Springboot+Springmvc实现文件的上传和下载(附源...原创 2019-08-04 15:09:52 · 1817 阅读 · 2 评论 -
趣谈java策略模式
什么是策略模式对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如“三只松鼠”的官方旗舰店,有“优惠”的行为,但是有好几种优惠选择:满两件打7折,满199-100等。这些优惠选择就是实现了不同的算法。又比如说,对两个数进行操作,可以有“加减乘除”四种不同的实现。使用场景和优缺点使用场景(1)当一个系统中有许多类,它们之间的区别仅在于它们的行为,希望动态地让一个对象在许多行...原创 2019-07-23 09:35:06 · 684 阅读 · 1 评论 -
小仙女讲Spring—综述
这几天天气实在是太热啦,知道你们吃不下饭,那就送你们点精神食粮吧。《小仙女讲Spring》系列套餐送给你们。套餐目录首先,小白请看此篇博客:【SSM】写给单身狗看的Spring总结其次小仙女分别用Spring技术栈(Spring JDBC、Spring、Spring MVC、JSP)和Springboot实现了同一个登录的功能。可以发现,引入了Springboot,使Spring的开发...原创 2019-07-28 20:13:57 · 1746 阅读 · 10 评论 -
小仙女细解Spring的AOP
大家好,本仙女又来了。这次我们说说AOP。AOP是什么?要说AOP,就不得不谈OOP(面向对象编程)。oop——竖向抽取即使不知道aop,那也知道OOP吧,对,就是OOP,Object Oriented Programming,面向对象编程。在OOP中,我们将两个类中相同的部分抽取出来,形成父类,这两个类再继承这个父类。从而实现了消除冗余代码。aop——横向抽取AOP是OOP的补...原创 2019-07-28 20:11:10 · 732 阅读 · 1 评论 -
用Springboot实现小demo(附源码)
在上篇文章中,我们用Spring技术栈实现了登录功能。这篇我们用Springboot来实现同样的功能,比较一下它俩的区别。原创 2019-07-28 08:04:52 · 3373 阅读 · 2 评论 -
小仙女细解Spring的IOC
大家好,本仙女又来啦。上两篇博客我们说了说Spring和Springboot的比较。接下来这两篇博客我们对Spring的核心——IOC和AOP进行一下深刻剖析。IOC是啥?概念IOC是控制反转,我们以Controller层调Service层为例,以前是这样写:Service service=new Service();有了IOC之后,我们这样写:@Autowiredprivate...原创 2019-07-27 16:55:34 · 772 阅读 · 7 评论 -
【java反射】简单说说静态代理和动态代理
在上篇博客中,我们说了反射的原理和简单应用,这次我们说说反射更深一层的应用,即动态代理。代理模式定义代理模式是为其他对象提供一种代理以控制对这个对象的访问。代理模式分为静态代理和动态代理。原理使用一个代理将对象包装起来,然后用该代理对象取代原始对象,任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。就像如果你们公司想找张艺兴当代言人,需要先联系他的助理...原创 2019-01-17 17:06:16 · 1839 阅读 · 4 评论 -
趣谈java代理模式
概念代理模式:为一个对象提供一种代理,以控制对这个对象的访问。分为静态代理和动态代理。比如我家张艺兴的经纪人就是他的“代理”。适用场景和优缺点适用场景(1)当我们想要隐藏某个类时,可以为其提供代理类(2)当一个类需要对不同的调用者提供不同的调用权限时,可以使用代理类来实现(3)当我们要扩展某个类的某个功能时,可以使用代理模式,在代理类中进行简单扩展(4)spring的aop就是使...原创 2019-07-23 15:14:26 · 350 阅读 · 1 评论 -
趣谈java适配器模式
概念适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要有如下3类的适配器模式:类、对象、接口。充电器的头就相当于一个适配器,它适配了手机充电线和插座。适用场景和优缺点适用场景:有动机地修改一个正常运行的系统接口优点:(1)可以让任何两个没有关联的类一起运行(2)提高了类的复用(3)增加了类的透明度(4)灵活性好缺点...原创 2019-07-23 10:54:57 · 321 阅读 · 0 评论 -
趣谈java观察者模式
概念观察者模式又叫发布-订阅模式,当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化。对象之间是一种一对多的关系。就像如果你订阅了“人民日报”,那每当此报纸出新版时,邮局的工作人员就会送一份到你的家里。此时,你就是“观察者”,观察的是“报纸”的动态。使用场景和优缺点使用场景:(1)当一个对象的改变需要改变其它对象,而且它不知道具体有多少个对象有待改变时。(2)一个抽象模...原创 2019-07-23 10:15:17 · 316 阅读 · 0 评论 -
【Springcloud】详解Hystrix(断路器)
这篇我们说说Springcloud的第三个组件——Hystrix。Hystrix类似于电路上的“保险丝”。我们知道,如果短时间内用电量过大,保险丝会“自杀”,从而断电,起到保护电路安全的作用。这也就是常说的“跳闸”。Hystrix就是系统的保险丝,至于具体是如何保护的,请接着看。Hystrix是什么?Hystrix是用于服务保护的,当某个服务单元发生故障后,通过断路器的故障监控,向调用方返...原创 2019-07-29 21:16:39 · 677 阅读 · 0 评论 -
【Springcloud】详解Ribbon(负载均衡)
大家下午好,这次我们说说Springcloud的第二个组件——Ribbon。Ribbon是什么?Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,将面向服务的REST模板请求自动转换成客户端负载均衡的服务调用。 和Nginx的区别?Nginx是服务端负载均衡,而Ribbon是客户端负载均衡。啥叫客户端,啥叫服务端?Eureka的注册中心叫作服务端,生产者和消费者叫作客...原创 2019-07-29 18:24:43 · 448 阅读 · 1 评论 -
【Springcloud】详解Eureka(服务治理)
今天我们说说Springcloud中的第一个组件——Eureka。 Eureka是什么?Eureka是微服务框架中负责完成服务治理的组件。简单来说,既然微服务中各服务之间是相互独立的,那他们如果想相互调用接口,就需要用到Eureka。Eureka就相当于dubbo+zk。其中,注册中心是Eureka的服务端,服务提供者和消费者是Eureka的客户端。下面我们就来看看Eureka的服务治...原创 2019-07-29 12:01:51 · 892 阅读 · 7 评论 -
小仙女讲JVM(4)—类文件结构
讲完了自动内存管理,我们来说说执行子系统。执行子系统讲解的是JVM如何执行程序。Class文件概述这篇我们只讲讲Class文件。Class文件又名类文件或字节码文件。javac将.java文件(源代码)编译成.class文件(字节码),jvm再将.class文件解释成机器码。Class文件中包含的是Java虚拟机指令集和符号表以及若干其它辅助信息。其是一组以8字节为基础单元的二进制流,没...原创 2019-06-19 14:55:45 · 2562 阅读 · 7 评论 -
小仙女讲JVM(3)—垃圾收集机制
在上一篇中我们说过,自动内存管理分为两部分:给对象分配内存和回收分配给对象的内存。这篇我们说说后者,即回收分配给对象的内存。回收内存要用到垃圾收集机制,英文名儿是GC(Garbage Collection)。在本部分我们要解决如下几个问题:哪些内存需要回收?什么时候回收?如何回收?哪些内存需要回收?堆和方法区的内存需要回收,其余的不需要回收。因为只有堆和方法区是线程共享的,其余...原创 2019-06-19 11:49:16 · 3317 阅读 · 18 评论 -
小仙女讲JVM(2)—内存的划分
我们知道,在C++语言里,如果想使用一个对象,需要对其进行new操作;如果不用这个对象了,需要对其进行delete操作。一旦开发人员忘记写delete语句了,就会造成内存泄露。【内存被对象占用着不还,就叫内存泄露。】而java就聪明了,它从“手动”进化成了“自动”,把内存的控制权力交给了虚拟机。下面我们就来窥探一下jvm是怎么进行自动内存管理的。这是自动内存管理的思维导图,在本篇我们只说说...原创 2019-06-18 20:30:50 · 10479 阅读 · 34 评论 -
【JVM】初识JVM(上)
平时我们都是用IDE编写好代码后,执行,就能看到效果了。可是我们有没有想过,这其中的流程是怎么样的呢?我们编写的代码是“java语言”的,可是计算机只能听懂“01语言”。那其中是怎么转换的呢?JVM讲的就是这个。引入JVMjava语言到机器语言我们先来看一个java文件是怎么翻译为机器语言的。从上图中可以看出:我们编写出.java文件,经过编译器(javac)编译,生成.class文...原创 2019-01-22 14:03:01 · 1101 阅读 · 17 评论 -
【JVM】初识JVM(下)
在上篇博客中,我们说了说JVM的结构和堆的分代,这次我们简单说说JVM的垃圾回收机制和监测。JVM的垃圾回收机制再来看下图,只有方法区和堆是线程共享的,所以只有他俩有垃圾回收机制。其余的都随线程死而死了,也就没有垃圾之说了。何为垃圾?不再被引用的对象就是垃圾。垃圾回收就是将此对象清除出来,释放空间。这样就可以盛放新的对象了。至于方法区是不是和堆中的永久代是一回事,好像没有定论。几种垃圾...原创 2019-01-22 17:11:19 · 1145 阅读 · 16 评论 -
一篇文章弄懂RPC
是什么Remote Procedure Call,远程过程调用,一种通过网络从远程计算机程序上请求服务来得到计算服务或者数据服务,而不需要了解底层网络技术的协议和框架。像Dubbo、HSF、gRPC、Thrift等都是RPC框架。而Spring Cloud不是,具体在后面会讲到。微服务微服务、分布式、SOA的区别单体应用程序——SSH垂直应用架构——RESTfulSOA——Dubbo...原创 2018-10-12 11:24:21 · 440 阅读 · 3 评论 -
细解springmvc的入门demo(附源码)
前期解读此代码的调用流程如下:(1)tomcat启动时,先加载web.xml文件(2)web.xml里面有springmvc.xml文件的路径,所以接下来加载springmvc.xml配置文件。(3)springmvc.xml里面配置了...原创 2018-10-31 15:52:16 · 423 阅读 · 2 评论 -
【Spring MVC】注解和配置文件的代码比较
当我们在类文件里写了方法,怎么被程序知道并调用呢?一般有两种方法:配置文件注解下面小编就以亲自敲的例子“SpringMVC_Test”为例来简单说说。配置文件篇在springmvc.xml中这样写:在controller包下的类中这样写:注解篇在springmvc.xml中这样写:在controller包下的类中这样写:springmvc.xml里面配置了一个包扫描...原创 2018-10-31 19:02:07 · 652 阅读 · 3 评论 -
小仙女讲JVM(5)—类加载机制
上篇中我们讲解了Class文件,这篇我们说说虚拟机是如何加载这些Class文件的?Class文件中的信息进入到虚拟机后会发生什么变化?这就涉及到了类加载机制。类加载机制是把类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。这一系列的过程都是在程序运行期间完成的。类加载器类加载器就是下图中红框的部分,它通过一个类的全限定名来获取...原创 2019-06-19 16:36:56 · 4337 阅读 · 19 评论 -
小仙女讲JVM(6)—字节码执行引擎
看到下图的java代码的执行过程,你是不是对其流程脱口而出?.java源码被javac编译成.class文件,.class文件被jvm解释成不同的机器码。那本仙女问你一个问题:JVM只有解释的功能吗?如果你回答是,那就太天真了。JVM不仅有解释的功能,还有编译的功能。JVM中的执行引擎在执行java代码的时候,一般有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选...原创 2019-06-21 16:34:42 · 1342 阅读 · 13 评论 -
用Spring技术栈实现小demo(附源码)
为了更好地梳理Spring和Springboot的知识框架,小编以这两种技术各写一个登录demo,并对其进行详细讲解。前提(1)安装了IDE(如idea)和Maven。(2)执行Sql脚本,新建2张表。建议在Navicat里操作。以下是两张表的sql脚本:链接:https://pan.baidu.com/s/1XSl2_hROH615vThL7ipenA提取码:519r(3)在文末...原创 2019-07-24 10:42:49 · 483 阅读 · 4 评论 -
【SSM】写给单身狗看的Spring总结
what?这一部分说说Spring的概念。Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。web层:SpringMVCservice层:Bean管理、IOC、事务管理dao层:提供了JDBC模板,可以很好地和ORM框架进行整合why?这一部分说说Spring的作用,我们为什么要用它。Spring用的是面向接口的思想,解决的是service层和其它各层...原创 2018-09-18 20:29:37 · 851 阅读 · 4 评论 -
趣谈java设计模式—综述
终于把设计模式总结完啦~这次一共总结了6个常用的设计模式,总结完后收获颇丰。本系列博客目录趣谈java单例模式趣谈java策略模式趣谈java观察者模式趣谈java适配器模式趣谈java代理模式趣谈java工厂模式学习体会(1)学习是一个螺旋上升的过程,每一份坚持都不会白费。2年前学C#语言的时候,曾经接触过设计模式,当时看完是一脸懵。现在再来看设计模式,感受到的是大牛思想的巧妙...原创 2019-07-23 16:53:02 · 680 阅读 · 0 评论 -
趣谈java工厂模式
概念工厂模式是用工厂方法代替new操作的一种模式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式分为3种:简单工厂模式、工厂方法模式、抽象工厂模式。就像大白兔工厂是生成大白兔奶糖的,java工厂生产的是对象。适用场景和优缺点适用场景(1)在编码时不能预见需要创建哪种类的实例。(2)系统不应依赖于产品类实例如何被创建、组...原创 2019-07-23 16:33:08 · 382 阅读 · 0 评论 -
趣谈java单例模式
什么是单例模式确保一个类最多只有一个实例,并提供一个全局访问点。就像你是你们家的独生子,一旦邻居跟你爸告状说“你家孩子打架了”,说的只可能是你。单例模式有两种创建方式:懒汉式和饿汉式。在下文会对其进行详细解说。使用场景和优缺点使用场景(1)网站计数器。当需要统计当前在线人数,只能用一个全局对象来记录。(2)应用程序的日志。日志内容一般为共享操作,需要在后面不断写入内容,所以需要单例模...原创 2019-06-23 10:39:23 · 880 阅读 · 5 评论 -
小仙女讲JVM(1)—综述
大家好,自从上次讲了软考课程之后,本仙女受到了社会各界的一致好评。本仙女怀着用毕生所学回报社会的热忱,打算花大手笔进行JVM的讲解。1、首先,对以上的四部分进行解释。(1)自动内存管理讲的是java运行时数据区里的部分,分为内存划分和垃圾收集器。(2)执行子系统讲的是画红圈的三部分:类文件结构、类加载机制、字节码执行引擎。(3)优化分别为编译期优化和运行期优化。(4)并发讲的是虚拟机...原创 2019-06-18 16:04:03 · 38369 阅读 · 163 评论 -
小仙女讲JVM(8)—高效并发
内存模型内存模式是在特定的操作协议下,对特定的内存或高速缓存进行读写访问的过程抽象。其主要目标是定义程序中各个变量的访问规则。主内存和工作内存所有的变量都存储在主内存中,每条线程还有自己的工作内存,其工作内存中是被线程使用到的变量的主内存副本拷贝,线程对变量的读取、赋值等操作都必须在工作内存中进行,而不能直接读取主内存中的变量。内存间交互操作从主内存拷贝到工作内存:顺序地执行read...原创 2019-06-22 11:23:51 · 1943 阅读 · 33 评论 -
小仙女讲JVM(7)—JVM优化
还以这个图为例,从.java到.class是编译过程,从.class到机器码是解释过程。下面对其进行分别优化。在优化过程中,对编译阶段的优化主要是对前端编译器的优化,在运行阶段的优化,主要是对即时编译器的优化。编译器优化编译过程以上为javac的编译过程图,以下为javac编译过程的主体代码。下面对其步骤进行详细解读1、解析与填充符号表词法分析将源代码的字符流转变为标记(...原创 2019-06-21 20:31:21 · 1893 阅读 · 16 评论