自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阶前空雨

记录分享知识

  • 博客(38)
  • 收藏
  • 关注

原创 微服务架构 将serviceComb改为springcloud

serviceComb转为springcloud1.拆分服务2.碰到的坑项目本来使用sprigboot+serviceComb ,调整项目架构后需要拆分服务,变为springboot+XXX,将服务的cotroller层独立成一个服务,能适应基于springboot的不同微服务架构,我将过程以及碰到的坑记录下来。1.拆分服务将一个服务拆为2个模块,service+dao层单独成一个模块,co...

2020-04-04 13:34:00 1099

原创 对自定义mybatis的理解

话不多说,直进主题。欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ...

2019-06-23 10:11:27 2162 3

原创 springcloud Ribbon详解

微服务间的调用,网关请求转发,feign都是通过ribbon实现的,因此学习ribbon的原理还是很重要的,而ribbon的作用是用于负载均衡,springcloud自动化整合配置ribbon是RibbonEurekaAutoConfiguration这个类。对于开发者来说,使用ribbon只需要在RestTemplate上添加@LoadBalanced注解即可实现消费方的负载均衡RestTemplateresttemplate用于不同服务间的通信和访问,主要有发送GET,POST,PUT,DELETE

2020-06-10 21:35:17 5619

原创 springcloud Eureka详解

1.原理eureka用于服务治理,实现各个微服务实例的自动化注册与发现,不同可用区域的服务注册中心通过异步的方式相互复制各自的状态,eureka客户端向注册中心注册服务并周期性地发送心跳更新服务租约,同时也能从服务端查询所有其他服务的信息。服务提供者须实现的功能1.进行服务注册2.将自身信息注册并同步到其他所有注册中心3.进行服务续约服务消费者须实现的功能1.获取服务2.进行服务调用3.服务下线并传播该事件服务注册中心须提供的功能1.将无法提供服务的实例剔除2.自我保护(当心跳失败

2020-06-05 20:26:23 416

原创 jvm相关知识

首先我们得知道jvm的内存结构和内存模型(JMM)这2个概念:内存结构:存储数据的方式(物理上,逻辑上)内存模型:定义了一系列规则来保证多线程环境下对数据的读写一致性(如:synchronized,volatile关键字)内存结构从图中可看出jvm内存主要分为:程序计数器 :记住下一条jvm指令的执行地址(每个线程私有的)虚拟机栈:每当启动一个新线程时,Java虚拟机都会为它分配一个Java栈,某个线程正在执行的方法被称为该线程的当前方法,当前方法使用的栈帧称为当前帧当前方法的参数和

2020-05-21 11:37:39 174

原创 JDK8新特性 流Stream

突然看到这段代码,一时没懂啥意思,网上搜了下,记录下来List<Long> ids = list.stream().map(map -> Long.parseLong(map.get("id").toString())).distinct().collect(Collectors.toList());Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。先将list转化为流,可以对该元素流进行一系列操作,链式调用,顺序不固定,主要方法有:f

2020-05-18 17:40:53 170

原创 常量池 StringTable

常量池是 .class文件,存放堆中数据的引用地址,而不是真实的对象,运行时常量池是jvm运行时将常量池中数据放入池中,此时引用地址真正的指向对象而不是.class文件;Stringtable是哈希表(不能扩容),它也叫做串池,用来存储字符串,这3个不是同一个东西,我们需要进行区分String table中存储的并不是String类型的对象,存储的而是指向String对象的索引,真实对象还是存储在堆中jdk1.6中,Stringtable是放在永久代(方法区)中,jvm进行FullGC才会对常量池进..

2020-05-18 17:25:39 493

原创 CountDownLatch和线程池

1.CountDownLatch List list = new ArrayList<String>(); for(int i= 0;i<100000;i++){ list.add(String.valueOf(i)); } //System.out.println(list.toString()); int threadnum = list.size() % 200 == 0? li

2020-05-12 16:57:17 1090

原创 JDK源码解析 - java.util.concurrent.ConcurrentHashMap

分析这个类前,补充一些相关的基本常识HashMap:JDK8以前是头插法,JDK8后是尾插法HashMap扩容时,可能会导致死循环:如果两个线程同时触发扩容,在移动节点时会导致一个链表中的2个节点相互引用,从而生成环链表 原因,反正我没看懂ConcurrentHashMap的扩容实现:当往hashMap中成功插入一个key/value节点时,有可能触发扩容动作:如果新增节点之后,...

2020-04-29 20:03:04 446

原创 JDK源码解析 - java.util.Hashtable

1.构造方法public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, java.io.Serializable { private static final long serialVersionUID = 14217467595...

2020-04-28 21:06:22 226

原创 JDK源码解析 - java.util.HashSet

1.实现接口public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable //继承了AbstractSet接口,实现了Set接口{ static final long serialVersion...

2020-04-28 09:48:32 272

原创 JDK源码解析 - java.util.HashMap

1.静态变量 // 6个默认值static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 右移4位 2的4次方 table数组默认初始容量static final int MAXIMUM_CAPACITY = 1 << 30; //table数组最大容量static final float DEF...

2020-04-27 19:45:28 266

原创 3岁儿子还不会这么基本的算法?快速,冒泡,插入排序

直接贴代码import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Sort { //快速排序 public static void quickSort(int[] arr , int left, int right){ int temp = 0;...

2020-04-24 15:27:15 145

原创 JDK源码解析 - java.util.ArrayList

1.实现接口public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ private static final long serialVersionUID = 868...

2020-04-23 20:37:47 483

原创 JDK源码解析 - java.util.AbstractList

1.实现接口,构造方法public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> { /** * Sole constructor. (For invocation by subclass constructors, typic...

2020-04-14 20:51:40 253

转载 JDK源码解析 - java.lang.ThreadLocal

以下为转载,写的特别好0-0:https://www.jianshu.com/p/3c5d7f09dfbdThreadLocalthreadlocal使用方法很简单static final ThreadLocal<T> sThreadLocal = new ThreadLocal<T>();sThreadLocal.set(...)sThreadLocal.g...

2020-04-14 14:44:34 435

原创 微服务架构 springcloud改为tsf oracle视图改为tbsql(MySQL)

springcloud改tsfpom.xml将原来springcloud相关依赖删除(包括spring-boot-starter-web)引入tsf相关依赖 <!--腾讯云--> <parent> <groupId>com.tencent.tsf</groupId> <artifactId>spring-cloud-...

2020-04-14 11:08:16 999

原创 JDK源码解析 - java.lang.Thread

1.启动线程的方式子类继承Thread,重写run()方法 * class PrimeThread extends Thread { * long minPrime; * PrimeThread(long minPrime) { * this.minPrime = minPrime; * } * ...

2020-04-11 17:33:20 436

原创 JDK源码解析 - java.lang.StringBuilder

1.实现接口public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable, CharSequence{ ... //序列化 static final long serialVersionUID = 4383685877...

2020-04-10 16:47:09 206

原创 JDK源码解析 - java.lang.StringBuffer

1.实现接口/** * Whenever an operation occurs involving a source sequence (such as * appending or inserting from a source sequence), this class synchronizes * only on the string buffer performing the o...

2020-04-10 16:01:14 135

原创 JDK源码解析 - java.lang.AbstractStringBuilder

1.实现接口abstract class AbstractStringBuilder implements Appendable, CharSequence {...}StringBuilder和StringBuffer都实现了这个类。Appendable接口有3个append抽象方法,CharSequence接口主要有length,charAt,subSequence,toString4个...

2020-04-10 14:32:20 256

原创 JDK源码解析-java.lang.String

1.String实现接口public final class String implements java.io.Serializable, Comparable<String>, CharSequence {....}序列化接口 private static final ObjectStreamField[] serialPersistentFields =...

2020-04-09 23:24:11 406

原创 JDK源码解析-java.lang.object

1.registerNatives() private static native void registerNatives(); static { registerNatives(); }首先这是个本地方法,是由其他语言编写的,运行中的Java程序调用本地方法时,虚拟机装载包含这个本地方法的动态库,并调用这个方法。本地方法是联系Java程序和底层主机操...

2020-04-07 23:24:46 146

原创 项目笔记learn13(购物车解决方案)

未登陆时使用cookie,登陆后使用redis,用户登陆时,cookie已存在购物车,合并后需要清除cookie数据1.新建一个购物车实体类:public class Cart implements Serializable{ private String sellerId;//商家ID private String sellerName;//商家名称 private List<T...

2019-08-01 19:45:11 119

原创 项目笔记learn12(消息中间件)

通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信1.JMS 定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。· TextMessage–一个字符串对象· MapMessage–一套名称-值对· ObjectMessage–一个序列化的 Java 对象· BytesMessage–一个字节的数...

2019-08-01 19:22:02 110

原创 项目笔记learn11(springboot和短信解决方案)

springboot没有代码生成,也无需 XML 配置。同时也可以修改默认值来满足特定的需求1.引入起步依赖:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>...

2019-08-01 19:02:42 141

原创 项目笔记learn10(Freemarker)

FreeMarker与 Web 容器无关,即在 Web 运行时,它并不知道 Servlet 或 HTTP。1.引入依赖<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.2...

2019-08-01 18:41:19 111

原创 项目笔记learn09(solr区间和排序搜索)

1.区间搜索private Map searchList(Map searchMap){ ...... if(!"".equals(searchMap.get("price"))){ String[] price = ((String) searchMap.get("price")).split("-");3000-* if(!price[0].equal...

2019-07-23 21:00:06 180

原创 项目笔记learn09(solr高亮显示和过滤分组搜索)

1.高亮显示1.后端代码private Map searchList(Map searchMap){ Map map=new HashMap(); HighlightQuery query=new SimpleHighlightQuery(); HighlightOptions highlightOptions=new HighlightOptions().addField("it...

2019-07-23 20:46:23 122

原创 项目笔记learn09(solr-1)

1.建立在Lucene(全文搜索引擎)之上,不仅限于搜索,Solr也可以用于存储目的。像其他NoSQL数据库一样,它是一种非关系数据存储和处理技术(需引入中文分析器)2.复制域的作用在于将某一个Field中的数据复制到另一个域中(联合搜索)3.需要动态扩充字段时,使用动态域。<field name="item_goodsid" type="long" indexed="true" st...

2019-07-23 20:09:04 68

原创 项目笔记learn08(redis)

1.html页面轮播图的显示使用三目运算符 <li data-target="#myCarousel" data-slide-to="{{$index}}" class="{{$index==0?'active':''}}" ng-repeat="item in contentList[1]" ></li>2.对于访问量比较大的页面需要用到缓存技术进行处理,减少数据库...

2019-07-23 19:46:13 63

原创 项目笔记Learn07(数组绑定,html页面跳转和注解配置事务)

1.前端页面显示技巧数据库中存的是0 1 2这样的值来代表不同的数据时,前端显示需要进行多个if判断再将对应的文本显示到页面上,此时可以这样做:1.controller.js中://添加state数组$scope.status=['未审核','已审核','审核未通过','关闭'];2.页面中://显示{{status[entity.auditStatus]}}当然,多个数值时也...

2019-07-19 01:30:57 132

原创 项目笔记Learn06(下拉框实现级联和checkbox)

1.下拉框1.controller.js中//读取一级分类$scope.selectItemCat1List=function(){ itemCatService.findByParentId(0).success( function(response){ $scope.itemCat1List=response; } )...

2019-07-19 01:12:47 122

原创 项目笔记Learn05(面包屑和录入功能)

1.导航栏面包屑实现Controller.js 中$scope.grade=1; //默认为1级 //设置级别 $scope.setGrade=function(value){ $scope.grade=value; } //读取列表 $scope.selectList=function(p_entity){ if($scope.grade==1){ //如果为1级...

2019-07-19 00:50:40 107

原创 项目笔记Learn04(spring security)

Spring Security提供了一组可以在Spring应用上下文中配置的Bean,利用了spring IOC,DI,AOP的功能。需要角色认证和资源访问授权1.使用自定义登陆页1.pom.xml中导入坐标<dependency> <groupId>org.springframework.security</groupId> <art...

2019-07-19 00:16:17 79

原创 项目笔记Learn03

AngularJS的MVC模式$ controller也是angular提供的一个服务,可以实现伪继承,实际上就是与BaseController共享$scopeapp.controller('baseController' ,function($scope){ ....}brandController传参,进行共享app.controller('brandController' ,f...

2019-07-12 00:59:00 81

原创 项目笔记Learn02

AngularJSangularJS能实现双向绑定,框架自动创建对象并实现依赖注入,能够自定义模块进行模块化设计1.ng-app 指令:作用是告诉子元素以下的指令是归angularJs的2.表达式的写法是{{表达式}},表达式可以是变量或是运算式<body ng-app> {{100+100}} //运算 读取model变量</body>3.ng...

2019-07-12 00:09:40 111

原创 项目笔记Learn01

使用技术 Dubbox+SSM+angularJS+bootstrap1.引用dubbo服务配置<dubbo:application name="dubboxdemo-web" /><dubbo:registry address="zookeeper://192.168.25.132:2181"/><-- 扫描配置注解的包 --><dubbo:a...

2019-07-11 23:04:59 98

空空如也

空空如也

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

TA关注的人

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