java
liyingying111111
这个作者很懒,什么都没留下…
展开
-
zuul动态路由集成hystrix实现熔断保护并集成feign实现声明式服务调用
上一篇中。将userService提供服务的返回时间延迟4000ms。导致feign在调用时候出发熔断。直接返回fallback回调。这一篇中加入zuul实现动态路由功能。并加入ZuulFilter的前置过滤功能。zuul集成hystrix默认在早期版本是打开的。但在后期版本就关闭了自动打开功能,需要手动配置打开。这一点需要注意测试代码如下:1:引入相关的依赖:<dep...原创 2018-12-04 14:07:29 · 3209 阅读 · 3 评论 -
springboot自动以filter,interceptor,listener实现自定义过滤、拦截、监听
1:自定义拦截器(1)实现Filter接口(2)添加注解WebFilter,指定要过滤的路径、指定filer的名字、指定初始化参数 (3)添加@ServletComponentScan注解开启扫描servlet组件package top.lrshuai.fli.filter;import java.io.IOException;import javax.servle...原创 2018-11-17 16:27:07 · 449 阅读 · 0 评论 -
sprintboot集成邮件管理功能
代码其实非常简单。只需要简单的配置就可以实现发送发邮件的功能。1:添加依赖配置:<!--发送邮件--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifac...原创 2018-11-17 14:06:21 · 373 阅读 · 0 评论 -
简单工厂设计模式的小case.
工厂设计模式是23中GOF设计模式中最常用的的一个设计模式。spring架构中也有很多接口的设计用到此种设计模式:今天就总结一下这个设计模式并手写一个小案例:图形画的那叫一个丑。帮助理解。意思意思。FactoryProvier:提供一个静态方法,接受一个EnumFactoryType的参数,返回具体的工厂实例。代码如下:package top.lrshuai.helloword....原创 2018-11-19 11:08:39 · 192 阅读 · 0 评论 -
springboot集成mybastis插件自动生成代码
pom.xml配置:<build> <plugins> <!--mybatis自动生成代码插件--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId&g原创 2018-11-02 20:27:40 · 376 阅读 · 0 评论 -
git学习之分支的创建、切换、合并
场景:1:项目经理在github上面创建master分支。并在本地创建本地库、编写代码、add 、commit、push推送到master分支。这个分支的代码可以看做是架构师的基础框架代码,项目开始是不允许直接在master分支进行编码的。一般情况下。项目经理会在github上面在建一个分支命名为dev分支。2:项目经理将本地代码同样推送到dev分支。然后程序员从dev分支把代码down到...原创 2018-10-22 16:17:08 · 218 阅读 · 0 评论 -
idea界面化集成git创建初始化本地库并提交远程库
准备工作:1:github或者码云创建自己的远程的仓库:https://github.com/*******/huashan.git2:idea创建本地maven项目:3:创建本地仓库,4:指定仓库的地址:https://github.com/******/huashan.git5:可以正常的add项目、commit 到本地库、push到远程库,我的报了一个错误:错误信...原创 2018-10-22 12:25:23 · 294 阅读 · 0 评论 -
快速入門JVM
请谈谈你对JVM的理解?java8的虚拟机有什么更新?什么是OOM?什么是StackOverflowError?有哪些方法分析?JVM的常用参数调优你知道哪些?内存快照抓取和MAT分析DUMP文件知道吗?谈谈JVM中,对类加载器你的认识?JVM(java虚拟机),java虚拟机是运行在操作系统层面的。下图是jvm的体系结构:类加载器------->class文...原创 2018-10-12 18:41:09 · 153 阅读 · 0 评论 -
java8新特性之lamda表达式应用java策略模式
java8的lamda表达式提供了有四种最常用的函数式接口类型:简单理解函数式接口:就是接口中只有一个抽象方法的接口1:消费型接口:Consumer 有入参 无返回接口2:供给型接口:Supplier 无入参 有返回结果3:function接口:有入参 有返回结果4:断言型接口Predicator: 判断返回结果是否true现在模拟一个小小的需求:一个集合:L...原创 2018-09-11 11:13:20 · 443 阅读 · 0 评论 -
springcloud对于eureka对注册服务的剔除机制及hystrix集成ribbon实现熔断降级
eureka对注册在eureka服务平台的服务实例,默认是有自我保护机制的。也就是说对实际上已经不能对外提供服务的应用,不进行剔除,那么在实际的应用中,我们要及时剔除掉不能对外进行提供服务的应用,并进行及时修复重新让其能提供对外服务。这个时候需要eureka开启相关的健康检查配置,对于非健康的服务实例。及时下线。那么相关的配置已经经过测试配置如下:1:需要引入springboot的健康检查依赖...原创 2018-12-03 16:00:30 · 1308 阅读 · 0 评论 -
Fegin集成Hystrix实现声明式服务调用及服务熔断降级
1:fegin集成了Hystrix。所以只需要引入feigin的依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependenc...原创 2018-12-03 18:29:58 · 790 阅读 · 0 评论 -
springboot自定义健康检测器
分布式服务注册中心eureka。单应用注册到eureka时候。会展示列表的应用状态。如下图:正常情况下。会显示UP。表明当前应用是正常启动状态。但是在实际场景中。可能该应用是正常的。但是数据库服务器已经不能正常对外提供服务。导致该应用对外也是不可用的。这个时候eureka是无法将应用状态修改为DOWN.也就无法将应用剔除。这个时候我们可以自定义应用健康监测器。对应用进行自检。如果应用对用的...原创 2018-12-06 14:10:14 · 1777 阅读 · 0 评论 -
springboot+ehcache+redis集群
前面实现了二级缓存。接下来要实现redis集群模式。本地实现6380 6381 6382模拟三台redis节点组成的集群修改大致如下:(1)修改redis单机节点的相关配置变为集群的配置;spring.redis.cluster.nodes=127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6382spring.redis.cluster.timeou...原创 2019-06-15 21:56:53 · 567 阅读 · 0 评论 -
CenterOS安装docker操作步骤
1:$ sudo vim /etc/yum.repos.d/docker.repo## 在vim编辑器中输入以下内容后保存[dockerrepo]name=Docker Repositorybaseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/enabled=1gpgcheck=1gpgkey=...原创 2019-05-09 16:13:40 · 1532 阅读 · 0 评论 -
声明式服务调用客户端FeginClient应用总结
eureka-feign-api 接口层。只负责提供接口package com.didispace.api;import org.springframework.web.bind.annotation.*;public interface HelloService { @RequestMapping(value = "/hello",method = RequestM...原创 2019-04-02 15:05:32 · 3497 阅读 · 0 评论 -
java并发基础多线程学习(2)-并发互斥技术synchronized
synchronized关键字一般称为互斥锁。在多线程并发执行情况下。如果没有加互斥锁就回出现各种问题。如下面的问题:现在有两个字符串 duoxiancheng 和 esondf15.那么我想让两个线程交替去打印字符串打印的时候一个字符一个字符的打印,那么看会有什么问题?1:定义打印字符串的方法:publid void print(String str){ for(i...原创 2019-03-28 11:29:54 · 491 阅读 · 0 评论 -
java并发基础多线程学习(1)-线程创建两种方式
一:创建线程的两种方式:(1)Thread thread1 = new Thread(){ public void run(){ try { Thread.sleep(1000); } catch (InterruptedException e) { ...原创 2019-03-28 10:38:51 · 137 阅读 · 0 评论 -
springboot集成shiro实现用户权限认证和sh
shiro是apache下的一个开源的权限认证框架。相对于spring security来说是一个轻量级的安全认证组件。今天用shiro讲原来的权限认证给替换掉。总结一下如下:第一步肯定是要引入shiro的相关依赖的:<!-- shiro --><dependency> <groupId>org.apache.shiro</groupId...原创 2019-03-15 19:55:48 · 393 阅读 · 0 评论 -
redis主从复制读写分离总结
配置redis主从分离的步骤总结如下:1:复制三份配置文件redis.conf.分别命名为:reids6379.conf redis6380.conf redis 6381.conf2:修改redis6379.conf(1)port 6379(2)pidfile /var/run/redis_6379.pid(3)logfile "redis6379.log"(4)...原创 2019-01-10 16:22:46 · 212 阅读 · 0 评论 -
微服务监控跟踪组件sleuth集成ELK
分布式系统如果服务数量很多的情况下,对微服务的监控和日志查询将会是一件很困难的事情。那么springcloud提供了一个分布式的服务跟踪组件:<!--服务跟踪组件--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring...原创 2019-01-03 17:59:01 · 973 阅读 · 0 评论 -
springcloud集成hystrix实现服务降级的大致路由以及配置详解
hystrix的回退机制大概如下图所示:1:测试hystrix熔断配置:#设置断路器的状态是false ConfigurationManager.getConfigInstance().setProperty("hystrix.command.default.circuitBreaker.forceOpen","false");#设置触发断路器开关的时间:10s C...原创 2018-12-07 13:53:00 · 568 阅读 · 0 评论 -
jvm类加载和tomcat类加载机制
应用程序在启动的时候需要启动虚拟机进行加载class文件到内存中。然后等待程序的调用。那么有时候我们的程序回报一个错误:ClassNotFoundException异常。什么情况下会报这个异常呢?也许你会说jvm找不到类。但是jvm它是怎么进行加载的呢?加载的机制是怎么样的?jvm采用委托上级的加载机制加载类。那么jvm的加载器自上而下四个:BootStraptClassLoader:...原创 2018-09-12 11:03:09 · 684 阅读 · 0 评论 -
java8的新特性之List集合双层for循环效率优化
首先先来一个案例简单模拟一下:List<String> wifes = new ArrayList<String>();List<String> husbands= new ArrayList<String>();for(int i=0;i<8000;i++){ wifes.add(new Wife(i, i+"的妻子",...原创 2018-09-06 17:14:02 · 33252 阅读 · 8 评论 -
springboot集成redis
一:引入springboot集成redis的依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--这...原创 2018-07-09 13:53:59 · 177 阅读 · 0 评论 -
基于springboot的WEB应用登录的常用接口总结
WEB应用的后台门户都有登录入口。做过几次登录的功能。就第一次会感觉难。难再功能菜单的级联查询组装,网上查一查。自己debug试试,最后搞定了.然后就把代码小心保存,以后就copy copy copy。哈哈!今天对springboot开发web应用做一些总结,只说说web登录这一块,以后慢慢记录一下sprinboot+springcloud的内容,从去年10月到现在。小半年时间基本也算对sprin...原创 2018-05-28 19:07:31 · 2411 阅读 · 1 评论 -
spring注解的运用
在ssh框架集成中,通过spring的Ioc(DI)实现对象的控制反转,把bean对象的创建和管理交给spring的容器。从而实现各层之间的松耦合。spring注解方式实现bean对象的注入:spring2.5之前spring通过@Component加在对应的类上就可以实现bean对象的装配。spring2.5细化了各层bean组件装配。并且对注解追加了更多语义。在dao层用细化了的@原创 2014-01-10 23:25:42 · 777 阅读 · 0 评论 -
action中servlet,request,session对象
action中关键代码:HttpServletRequest request =ServletActionContext.getRequest(); request.setAttribute("username", "username_request"); Map sessionMap =Servle转载 2013-11-18 17:04:58 · 1027 阅读 · 0 评论 -
struts2上传文件
通过2种方式模拟单个文件上传,效果如下所示开发步骤如下:1、新建一个web工程,导入struts2上传文件所需jar,如下图目录结构 2、新建Action [java] view plaincopyprint?package com.ljq.action; import java.io.F转载 2013-11-15 15:33:36 · 1031 阅读 · 0 评论 -
servlet+jsp+中文乱码问题
这几天听同事说servlet中午乱码问题。我也心血来潮就搞了一把。主要还是时间比较长没有接触servlet了。感觉有点忘了。就又自己搞了一个web小测试。注册到登录给自己复习复习。情景:jsp页面统一采用post请求。我基本从来不用get请求.页面编码统一设置成gbk过程:表单通过action提交servlet:这里面中文参数的接受debug进去会发现中文乱码怎么解决呢?实验过后发现两原创 2013-11-29 13:38:51 · 1035 阅读 · 0 评论 -
eclipse的快捷热键
记住常用的对加快代码的编写速度和调试非常有帮助。1. 【ALT+/】此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。2. 【Ctrl+O】显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。3. 【Ctrl+/】快速添加注释,能为光标所在行转载 2013-11-11 10:06:33 · 686 阅读 · 0 评论 -
根据日期获取星期号
在网上看到一个小小的工具类,研究一下发现一点小问题,修改了一下。package test;import java.util.Calendar;import java.util.GregorianCalendar;public class Test8 { public static void main(String[] args){ String dateStr="2013原创 2013-11-11 10:04:01 · 651 阅读 · 0 评论 -
数据库连接池的原理
连接池的基本工作原理 1、基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理。我们知道,对于共享资源,有一个很著名的设计模式:资源池 (Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要转载 2013-11-08 15:01:17 · 613 阅读 · 1 评论 -
java IO流的应用
流根据不同的概念可以分多种:1:流的方向可以分为输入流和输出流程序---------->文件(这样的流叫输出流)文件---------->程序(这样的流叫输入流)2:每次处理字节的长度分为字节流和字符流字节流每次处理一个bytes字符流每次处理一个字符(char)也就是两个bytes3::根据功能可以分为节点流和处理流节点流直接连接数据源,读入或者读出数据由于节原创 2013-11-20 15:17:26 · 772 阅读 · 0 评论 -
springmvn+layui+文件上传
layui是一款比较适合后端程序员直接上手得前端框架,页面css效果不错而且各类弹框、上传、日期、表格、图标、表单、标签等一系列组建都相当不错。开箱即用!这篇文章记录一下layui上传文件得组建分享一下:首先撸一下前端代码:<div class="layui-col-xs6"> <div class="grid-demo"> <form cla...原创 2018-06-28 15:34:15 · 1281 阅读 · 0 评论 -
springboot在服务器上启动的几种方式,亲测通过!
首先温习两条linux命令::%s#spring-boot-package-war1#spring-boot-package-war#gvi后批量将文件spring-boot-package-war1修改为spring-boot-package-war,注意在非编辑模式前面有冒号.cp -rf ./frmscs-manager2/* ./frmscs-test/---------...原创 2018-07-17 14:15:24 · 14537 阅读 · 2 评论 -
springboot的junit测试
springboot默认采用Jenkins作为JSON解析器,而我们在实际开发中,需要对实体做一些特殊处理。比如日期格式化,属性忽略等。常用fastjson代替默认的JSON解析器。1:引入fastJson的依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>fastj...原创 2018-08-13 19:03:37 · 309 阅读 · 0 评论 -
docker下载安装redis rabbmit elaticsearch的命令
redis:docker pull registry.docker-cn.com/library/redis 下载镜像 docker run -d -p 6379:6379 --name myredis registry.docker-cn.com/library/redis 安装rabbitmq:docker pull registry.docker-cn.com/librar...原创 2018-08-12 21:42:21 · 158 阅读 · 0 评论 -
ELK学习之安装elasticsearch
安装教程:https://blog.csdn.net/u012270682/article/details/72934270.亲测已经通过。访问http://localhost:9100端口入下图所示:用IE浏览器打开。google浏览器打开我的版本页面兼容性不好官网下载: elasticsearchnode下载地址:https://nodejs.org/en/download/...转载 2018-08-07 10:29:18 · 271 阅读 · 0 评论 -
springboot部署到外置tomcat遇到的问题
idea开发springboot项目。maven作为项目管理的工具。我们只需要引入:<packaging>war</packaging><plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifact...原创 2018-08-10 15:28:22 · 1534 阅读 · 0 评论 -
springcloud集成Hystrix实现服务降级
一:Feign集成Hystrix实现声明式服务调用:定义FeignClient接口。指定服务提供者、指定回调/** * : 描述信息 * * @author liyy * @date 2018-07-28 14:59 */@FeignClient(value = "microservice-provider-user",fallback = UserFeignFallBack.c...原创 2018-07-31 14:55:56 · 866 阅读 · 0 评论