自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (2)
  • 收藏
  • 关注

原创 Nacos初探(3)-- 服务发现原理解析

上面已经大概了解了一下Nacos服务注册的逻辑,接下来来看看服务是如何被发现已经消费的。一、服务发现前目前在Spring Cloud,基本都是使用Feign去调用服务,Feign其实也是Ribbon的一个封装,主要功能,是将我们通常http请求服务这个过程帮我们封装起来,使我们使用时更加的简便,通过一个注解就能实现对服务的调用,对于ribbon的源码解析,参考这篇文章:https://...

2018-12-19 13:53:52 8266 1

原创 Nacos初探(2)-- 服务注册原理解析

一、服务发现现状分析本节内容整理自 小马哥技术周报 : https://github.com/mercyblitz/tech-weekly1、Spring cloud 服务发现现状目前市面服务发现的组件有:Spring Cloud Eureka:优点: 1)Spring Cloud 官方推荐            2)AP模型,数据最终一致性            ...

2018-12-10 16:35:41 14636 3

原创 Nacos初探(1)-- 简介与启动

一、Nacos简介    Nacos是阿里巴巴开源的一款支持服务注册与发现,配置管理以及微服务管理的组件。    用过dubbo或者Spring cloud都应该知道注册中心(zookeeper , eureka等等),以及配置中心(spring cloud config等等),Nacos是集成了注册中心和配置中心的功能,做到了二合一,最为关键的是,国产,完全是在中国这种最为复杂的业务场景...

2018-12-10 10:39:16 13275 4

原创 Mongodb拼接字符串批量更新脚本

需求:有一个集合 message ,字段,url 、messageID, url ————————————————messageID “/trade/detail?id=%d&type=0” ——— 1001现需要将url中的%d 字符 替换为同一行中的messageID, 也就是url=”/trade/detail?id=1001&type=

2018-01-24 10:12:40 3031

原创 Spring-cloud-config-client更新报错Full authentication is required to access this resource

发送post请求到client,更新配置文件http://localhost:8095/refresh,得到返回值{ "timestamp":1514441597157, "status":401, "error":"Unauthorized", "message":"Full authentication is required to access this res

2017-12-28 14:26:42 3835

原创 Spring-boot--构建war包

在IDEA中默认spring boot都是构建成jar包,然后使用内置的容器运行,如果要部署到应用服务器,则需要将应用打包成为一个独立的jar或者war。然后放到服务器中去部署。1、修改pom文件加上这句配置,指定maven打包为war包<packaging>war</packaging>2、指定容器启动初始化类 WAR文件里没有启用Spring MVC DispatcherS

2017-11-16 14:43:22 419

转载 Nginx简介及配置文件详解

http://blog.csdn.net/hzsunshine/article/details/63687054

2017-08-06 21:08:14 320

原创 java操作mongodb总结

新需求需要用到Mongodb去存APP过来的数据,所以就简单学了一下。 项目是用Spring搭建的,本来直接用spring-data-mongodb这个模块就很简单地实现操作mongodb的功能,但是,经理硬是不让,必须使用mongodb原生的驱动去实现。给我挖坑。。。一、mongodb介绍 说来mongodb和redis很像,非常像,内存数据库,只是redis是以key-value形式存储数据

2017-04-27 20:24:42 2379

原创 Java基础知识积累2

switch语句后的控制表达式只能是short、char、int、long整数类型和枚举类型,不能是float,double和boolean类型。String类型是java7开始支持。Java程序的种类有: (a)内嵌于Web文件中,由浏览器来观看的_Applet (b)可独立运行的 Application (c)服务器端的 ServletsA 显然是错误的,Java一律采用Unicode编码

2017-03-29 23:30:40 345

转载 Java IO框架学习总结

Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流字符流和字节流字符流的由来: 因为数据编码的不同

2017-03-21 22:55:59 328

原创 Java基础知识积累1

接口中的变量默认是public static final 的,方法默认是public abstract 的抽象类 特点: 1.抽象类中可以构造方法 2.抽象类中可以存在普通属性,方法,静态属性和方法。 3.抽象类中可以存在抽象方法。 4.如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。 5.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义

2017-03-21 08:54:15 364

原创 Mybatis原理总结

1、加载Mybatis配置文件,读取配置文件流并将这些配置信息存放到Configuration类中,如别名,缓存之类的。我们的sql语句会被解析到MapperStatement对象中,将MappedStatement对象放到一个Map里面进行存放,Map的key值是该SQL块的ID。 2、通过SqlSessionFactoryBuilder创建出SqlSessionFactory,传递了3个参数:

2017-03-20 21:29:44 423

原创 SpringMVC学习(02)--SpringMVC的原理总结

一、原理总结 当用户在页面上发起一个请求时,首先请求到达我们的前端控制器,前端控制器初始化时已经将我们的web.xml的相关配置读取并设置到前端控制器当中,比如初始化参数,上下文等,同时,也将我们的Servlet跟Spring联系起来,通过上下文,最后初始化了各个组件的接口,比如请求映射,视图处理,异常处理。前端控制器得到请求之后,通过我们的处理器映射器RequestMapping,获取到一个Ha

2017-03-19 12:10:36 351

转载 ValueOperations的increment方法ERR value is not an integer or out of range错误解释

最近在开发中,使用Redis来实现数据点击量的统计存储功能。为什么使用Redis?点击量之类的功能,需要频繁触发更新操作,而且高并发访问时,还需要考虑操作冲突导致数据不一致的问题。而Redis是内存型存储,相比关系型数据库,操作更快,避免了频繁的文件写操作。更重要的是,Redis中有个INCR和INCRBY命令,都可以实现值递增的原子性操作,方便了解决了高并发时的冲突问题。Redis手册中的命令说明

2017-03-16 12:49:42 9468

原创 Java并发学习2--Sychronizer

Synchoronizer 接下来说一下同步辅助类的相关内容 1、闭锁(Latch) 闭锁的作用是:延迟线程的进度直到线程达到终点。 原理:闭锁相当于一个大门,在大门打开之前,也就是终点状态到来之前,没有一个线程能够通过,都处于阻塞状态。一旦终点状态到来,大门打开,则允许所有线程通过。一旦闭锁达到终点状态,它就不能改变状态了。 闭锁可以用来确保特定活动直到其他活动完成之后才发生。Count

2017-03-13 11:41:31 464

原创 Java并发学习1

一、Executors Executors工具类是用于创建线程池的,可以指定线程池的大小(线程的数量),也可以不指定大小,也可以指定定时器的线程池。下面来一一看看。 1、newFixedThreadPool(固定大小线程池)package sychrionizer;import java.util.concurrent.ExecutorService;import java.util.con

2017-03-12 22:04:17 316

原创 Spring学习11-- 事务管理

一、事务的四个特性 事务包括四个特征(ACID) 1、原子性(Atomicity):也就是说事务中的操作必须要保证是原子性的,不可再分的,意思就是说,一步失败,则全部失败,全部成功,才算成功。 2、一致性(Consistency):事务一旦完成,则必须保证,事务内的业务是一致的,不可能出现一部分成功的情况。现实中,数据也应该不被破坏。 3、隔离性(Isolation):事务通常来说,同时开启

2017-03-09 22:54:46 310

原创 Java并发学习--生产者/消费者模式

生产者/消费者模式是面向过程的一种高效设计模式。 生产者/消费者模式定义: 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来

2017-03-02 15:10:12 340

原创 面试题总结

1、创建组合索引如何决定哪个字段在前,哪个字段在后? 要根据业务需求,where子句中使用最频繁的一列放在最左边。 选择性高的字段放前面,选择性越高,查询性能越好2、增加索引前,如何知道增加索引对SQL有好处? 如果增加索引的列,选择性很高,则增加索引对查询的性能是有提高的,反之则不然。 对符合条件数据量少的,使用索引效率会高出很多3、当一个表数据已经占满服务

2017-02-24 15:56:32 449

原创 Java集合框架学习

今天看了一下集合框架,其实指的就是Collection接口和Map接口,其中Collection接口是Iterable接口的子接口。而Map接口上面已经没有父类接口了。 其中,Iterable接口包含三个方法 一、Collection接口 从Collection接口,就是我们的框架内容了,大致将一下,Collection接口下面有很多的子接口,其他的没用过,但是有三个我们经常碰见的,就是Set

2017-02-21 00:17:58 322

原创 Java设计模式(5)--适配器模式

适配器模式主要是用于补救的,为什么这么说呢,拿上一章的观察者模式来说: 1、jdk中的观察者Observer,是一个接口,如果我们有一个类Male,要实现观察者的功能,那么直接实现Observer接口即可,但是,如果需要是,既要有Observer的功能,也要有User(另一个类)的功能,我们要怎么做呢?这里,类适配器就发挥作用了public class Male extends User impl

2017-02-19 17:29:29 270

原创 Java设计模式(4)--观察者模式

今天看了一下观察者模式,总体来说不难,关键是要知道原理和这个模式的用法下面是我自己个人一些理解。 1、定义 观察者模式,首先得有观察者,一个或者多个观察者,它们都依赖于另一个对象,也就是说,这些观察者都观察着一个被观察者。那么,当被观察者状态发生改变时,被观察者需要通知所有它的观察者这个状态的变化,这就是观察者模式。 这样理解不好理解,举个简单的例子,很火的直播行业,一个主播,

2017-02-19 16:00:05 250

原创 SpringMVC学习(01)--前端控制器DispatcherServlet的初始化

一、DispatcherServlet的初始化过程 DispatcherServlet,也就是我们的前端控制器,它是SpringMVC的核心,那么,Spring容器在初始化DispatcherServlet的时候做了什么? 先看一下DispatcherServlet类的集成关系 1、调用init()方法 init()方法在在HttpServlet中定义,在HttpServletBean中

2017-02-13 17:21:10 1612

原创 JVM学习(2)--垃圾收集器

垃圾收集,也就是GC,GC过程中需要考虑三件事: 1、收集什么?(哪些内存需要收集) 2、何时回收?(什么时候进行收集) 3、如何回收?(通过什么方法回收) 下面内容是对这三点的一些总结。一、收集什么? 哪些内存需要回收呢?一句话,死去的对象占用的内存需要回收。死去的对象也就是,不能再被任何途径使用的对象。1、判断对象是否存活 1)引用计数法 给对象分配一个引用计数器,当对象被

2017-01-06 17:36:56 431

原创 Spring学习10-- AOP实现原理

AOP的原理不需要多讲,动态代理。那么,Spring在bean对象实例化的时候,是如何动态代理一个类的呢?又是如何完成方法织入的呢,来看一看源码。1、AbstractAutowireCapableBeanFactory的applyBeanPostProcessorsBeforeInstantiation 翻开Spring学习08的内容,里面有讲到后置处理器BeanPostProcessor的实现原

2017-01-05 22:40:03 329

原创 JVM学习(1)--Java内存区域

一 Java内存区域 如图所示,java内存区域分为以下几块。 1、程序计数器 程序计数器是一块很小的内存空间,可以当作当前线程所执行字节码的行号指示器。字节码解释器就是通过改变这个程序计数器的值来选取下一条需要执行的字节码指令。线程私有,每个线程都有一个独立的程序计数器。2、Java虚拟机栈线程私有,生命周期与线程相同虚拟机栈描述的是Java方法执行的内存模型:每个方法执行时都会创建一个帧栈

2017-01-05 00:17:08 322

原创 Spring学习09-- AOP简介和使用

一、AOP的概念 AOP(Aspect-OrientedProgramming),叫做面向切面编程,利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即切面。所谓“切面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作

2017-01-02 23:06:52 300

原创 Spring学习08--IoC容器的高级特性(lazy-init、FactoryBean、BeanPostProcessor、autowiring)

一、Spring IoC容器的lazy-init属性实现预实例化 我们知道,当我们不使用lazy-init属性修饰bean时,这个bean对象将会在IOC容器初始化的时候就已经建立好,当我们 lazy-init=true时,则告诉容器初始化的时候不初始化这个bean实例,而是在我们getBean的时候再进行初始化,那么,IOC容器初始化时,是怎么样对lazy-init属性进行处理的呢?首先回到I

2016-12-25 15:58:10 874

原创 Spring学习07--Bean对象的初始化(IOC的依赖注入)原理

参考原帖:这里写链接内容 上面讲的都是IOC容器初始化的过程,现在来说说我们获取bean实例的时候做了些什么,也就是我们调用getBean()方法的时候做了些什么。 一、AbstractBeanFactory的doHGetBean方法 顺着getBean方法找过去,我们定位到了AbstractBeanFactory的doHGetBean方法: //真正实现向IoC容器获取Bean的功能,也

2016-12-25 13:04:31 650

原创 Spring学习06--IOC实现原理以及IOC容器初始化过程

一、IOC原理 Spring功能如此强大,但是再强大的功能也是用java代码写出来的,那么就来看看IOC的实现原理是什么。 上一章说到,由于bean中lazy-init属性的存在,我们没有办法一次性将所有bean全部实例化,并且放到一个Mappackage org.springframework.beans.factory.support;import java.io.NotSerializab

2016-12-23 20:10:00 333

原创 Spring学习05--BeanFactory接口和BeanDefinition接口

一、BeanFactory接口 bean的工厂接口,我们通常使用的ApplicationContext也是BeanFactory的子类,不过中间有多重实现而已。 作为IOC容器的老祖宗,它应该提供了大部分我们所需要的方法,来看一下源码:package org.springframework.beans.factory;import org.springframework.beans.BeansE

2016-12-22 23:57:47 515

原创 Spring学习04--注入、依赖、方法注入详解

1、构造方法注入时,经常使用构造器参数的索引进行注入bean id="fundAcco" class="com.errol.dao.FundAcco"> constructor-arg index="0" value="212123"/> constructor-arg index="1" value="1"/> constructor-arg index="2" re

2016-12-21 22:34:35 365

原创 Java设计模式(3)--代理模式

什么是代理模式,就是我们生成类,替换掉原有类/接口的原有方法,以达到我们所需要的结果。就比如,数据库连接池的应用,一般老说,我们用完数据库连接,将会调用close()方法,将该连接关闭,但是在连接池中,应该是将数据库连接归还给连接池,而不是直接关闭,以达到统一管理的目的,这就需要我们去代理Connection接口,替换掉Connection接口中的close方法,写成归还给数据库连接池。代理模式分为

2016-12-20 20:13:43 280

原创 Spring学习03--其他特性(减少配置、自动装配、scope作用域,延迟初始化)

一、如何减少配置 1、将共同特性抽象出来 假设有两个类,Beal1和Bean2,两个类的成员变量都是如下:private String name;private int age;private String sex;写好get/set方法,那么在配置文件,这三个属性,两个bean标签都需要配置一遍,很麻烦,那么应该如何配置,能够减少配置量呢?<!-- 公共配置 --><bean i

2016-12-14 21:57:50 301

原创 Spring学习02--属性编辑器

1、属性编辑器 上面说道,Spring读取配置文件注入值的时候会调用属性编辑器,将value标签值转换成对象对应属性的类型值。那么,我们来自定义一个属性编辑器。 有一个类TradeAcco.java,有个成员变量是Date类型 private Date vc_date; 然后提供get/set方法(代码忽略) 然后配置文件如下配置:<property

2016-12-13 21:21:39 536

原创 Java设计模式(2)--简单工厂和工厂方法模式

一、简单工厂模式 1、概念 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式(GOF的意思是由四个人所著的一本《设计模式》定义了23种设计模式,通常用GOF代表)之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不

2016-12-13 09:50:52 337

原创 Spring学习01--IOC容器(简介,注入)

1、IOC IOC(控制反转):本来应该有应用程序管理的对象之间的依赖关系,现在交给容器管理,这就是控制反转的定义,即交给了IOC容器。 Spring的IOC主要是依赖于DI(注入)实现的,不需要应用程序去主动查找,对象的查找、定位、创建都交由容器管理。2、Spring的优势 1)大量减少了Factory和Singleton(工厂和单例),使得代码的层次更

2016-12-12 20:49:12 332

转载 Java 类加载器Classloader机制解析

转载自:点击打开链接做Java开发,对于ClassLoader的机制是必须要熟悉的基础知识,本文针对Java ClassLoader的机制做一个简要的总结。因为不同的JVM的实现不同,本文所描述的内容均只限于Hotspot Jvm.本文将会从JDK默认的提供的ClassLoader,双亲委托模型,如何自定义ClassLoader以及Java中打破双亲委托机制的场景四个方面入手去讨论和总结一

2016-12-12 14:42:30 616

原创 Java设计模式(1)--单例模式详解

单例设计模式是最常用到的设计模式之一。 主要作用是在程序中某一个实例需要保证只有一个,以达到程序所需的目的。通常一些管理器和控制器常被设计成单例模式。或者说: 这些类,在应用中如果有两个或者两个以上的实例会引起错误,又或者我换句话说,就是这些类,在整个应用中,同一时刻,有且只能有一种状态。单例模式的优点: 1、提供了实例的唯一的受控访问,单例控制了实例的唯一性,所以可以控制程序如

2016-12-12 14:06:32 303

原创 Servlet总结(4)--HttpServletRequest对象

HttpServletRequest对象是用于封装客户端的请求数据的,底层是HashTable。 便于方便,后文使用request代替, request的基本使用这里不详细讲解,主要总结一下几点。 1、获取客户端请求参数的方法 1)getParameter(String) 最常用的方法,几乎所有的表单提交过来都能用该方法进行参数获取。 2)getParameterValues(S

2016-12-10 16:26:36 442

Flink从入门到开发实战视频教程

Apache Flink入门到上手的视频教程,主要介绍了Flink的特性以及使用方式。

2018-12-28

rabbitmq-server-3.7.2 windows版本

最新版的rabbitmq windows版本,下载直接安装,安装前先安装Erlang

2017-12-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除