自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 ThreadLocal源码浅析

ThreadLocal源码解析ThreadLocal简介 ThreadLocal是一个本地线程副本变量工具类,在每一个线程中都创建一个ThreadLocalMap对象,简单来说ThreadLocal就是一种以空间换取时间的做法,每个线程都可以访问自己内部的ThreadLocalMap对象的value,通过这种方式避免资源在多线程之间共享。 常用于解决共享变量属性的线程安全问题。ThreadLocal的set方法 public void set(T value) {

2021-10-30 19:05:34 177

原创 Spring的Async使用与源码

简介 从Spring 3开始提供了@Async注解,该注解可以呗标注在方法上,以便异步地调用该方法。调用者将在调用时立即返回,方法的实际执行将提交给Spring TaskExecutor的任务中,由指定的线程池的线程执行。(推荐使用自定义的线程池,否者可能回造成OOM异常) 同步: 同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。 异步: 异步调用则是只是发送调用的指令,调用者无序等待被调用的方法完全执行完毕,主线程不会阻塞继续执行下去Spring 已经实现的线

2021-10-29 13:39:25 326

原创 Nacos 1.4.1

Spring Cloud Alibaba Nacos 注册中心简介 Spring Cloud Aliaba Nacos 是阿里巴巴推出的注册中心兼配置中心。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos特性: ①服务发现和服务健康监测:支持基于DNS和基于RPC的服务发现,支持对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求; ②动态配置服务:动态配置服务可以让您以中心化、外部化和动态化的方式管理所有

2021-03-06 13:13:04 1743

原创 泛型(Generic).md

泛型通配符 可以使用A-Z中任何一个,但是常用的时T、E、K、V、? ?: 无界通配符,表示不确定的java类型。 T(Type): 表示具体的一个java类型。 K(key) V(value): 分别代表java键中的key value E(element): 代表Element元素。规定泛型方法或者类使用泛型 泛型方法: 在方法返回前类型前添加"<>",里边添加泛型标识。 泛型类: 在类的名后边添加"

2021-01-28 09:51:04 158 2

原创 测试类测试代码的覆盖率

代码覆盖率,也就是跑代码,具体经过了那些代码,没执行的代码都是未被覆盖到的代码。覆盖率高的代码更有利于我们维护和测试,减少不必要的 if 分支,减少大量的冗余代码。执行如下执行成功后,会看到代码的覆盖率是多少...

2021-01-02 18:15:54 265

原创 构建ElasticSearch的Query String工具类

公司中经常使用到ElasticSearch进行查询,公司又是自己封装的查询ES库工具,其中Query String用的比较多,很多同事不清楚ES的查询语法。因MybatisGentertor启发,封装了一个构建Query String的工具类,其中也受到的大佬的指点。直接上代码import org.springframework.util.Assert;import java.util.LinkedList;import java.util.List;import java.util.strea

2021-01-02 17:59:41 287

原创 2-(初步分析spring容器)

项目github地址:https://github.com/fee1/spring-review正题开始getBean能取到我们往spring容器注入对象,所以从这个方法入手,ctrl+左击进入方法,类名为: BeanFactorypublic interface BeanFactory和我们想的有点差距,我们回到spring容器加载启动类:SpringStarter,在main方法中我们ctrl+左击进入ApplicationContext类public interface Applicati

2020-12-13 18:37:30 99

原创 1-(spring-review工程准备)

spring框架review依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <!--实际上已经包含所有spring核心--> <version>${spring.version}</version>

2020-12-13 18:32:07 97

原创 Closeable类出了那么久我才知道还能这么用。

由于使用到ElasticSearch,很多jar包都是大佬封装好给我们直接使用的,所以不得不开始探寻jar的源码,从中也学会了一些骚操作。这是我公司封装的一个连接操作ElasticSearch的client类,可以看到其接口继承了一个Closeable接口。public interface EsClient extends Closeablepackage java.io;import java.io.IOException;/** * A {@code Closeable} is .

2020-12-08 19:00:35 453

原创 我常用java 8 的特性

年末被迫跳槽到了一家外包公司,告别了jdk1.7以前的开发,重新开始使用lambda编程。大家都说在外包学不到东西,技术老旧,我挺幸运在一家银行外包,用的还是用eureka封装的微服务技术框架,jdk1.8的环境。Lambda表达式简介 Lambda表达式,也成为闭包。允许将函数作为方法的参数传过去。让我们能够写出更简洁的代码。有利有弊,权衡利弊使用。写法(参数) -> {代码逻辑}若只有一句简单的代码参数-> sout(参数)语法 1.不需要声明参数类型。 2.可选返

2020-11-21 17:05:35 228 2

原创 sleuth分布式请求链路追踪

springcloud-sleuth: 分布式请求链路跟踪简介 分布式系统跟中服务间调用的工具,直观展示出一次请求的调用过程。依赖(需要在目标项目中都添加相应的依赖,为了方便演示,我在target与openfeign工程配合演示此功能) <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spri

2020-11-12 23:06:07 107

原创 springboot admin server (springboot的应用监控中心)

Spring Boot Admin简介 通过Actuator查看spring boot 应用运行的过程中的各项指标,通过图形化界面呈现出来。有点类似于JDK自带的工具jvisualvm,但是它拥有更加强大丰富的功能。 1.查看JVM、tomcat进程信息。 2.查看应用配置信息,系统属性、系统环境变量等。 3.查看创建的bean信息。 4.查看应用中的运行日志。 5.查看web应用的访问端点。 6.查看http跟踪信息。依赖springboo

2020-10-23 16:54:29 2321 1

原创 压测导致的tomcat假死。

小记:早上面试完,回到公司已经中午12点,不知道为何面试完了以后感觉很头痛。听到经理在给他们说一个弄了三天没弄明白的bug。要是我没准备要走,这本来就是我的任务,所以我当仁不让了。(只要我不说,不会有人知道找bug是我的兴趣爱好)顶着头痛,掉头发的风险开始找bug(晚上洗澡真的掉了好多)问题描述一、tomcat6 7进行压测没有问题轻轻松松过百。二、tomcat9 进行压测,连5个并发都抵不住。三、项目跑起来没有任何错误日志,IDEA控制台没有打印任何错误。四、有关页面的请求页面能正常返回,但是关

2020-10-21 14:46:31 434

原创 spring cloud gateway 路由网关各种配置

spring cloud gateway: api网关zuul已经不在维护简单介绍: zuul 在springcloud刚推出时承担着api网关的作用,作为微服务架构中的服务提供了统一访问入口,客户端都是通过网关经行路由访问服务,而不是直接访问服务。网关有点类似于web开发中的拦截器与过滤器,但又不同于拦截器与过滤器。(注:过滤器在进入service前执行,拦截器在dispartservlet之后controller之气执行)它不仅能实现拦截器与过滤器的功能,还具有负载均衡、校验过滤、服务容

2020-10-16 10:24:18 14721 4

原创 deepin配置maven环境

maven下载https://archive.apache.org/dist/maven/maven-3/解压maven如图创建的目录下,并创建repo当作依赖下载存库配置conf下的setting.xml镜像源<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/pu

2020-10-12 15:34:43 634

原创 deepin安装jdk环境

下载JDK压缩包解压压缩包使用sudo dde-file-manager命令打开文件管理器在/usr/local目录下创建java文件夹将解压后的jdk放入到java文件夹下

2020-10-10 09:25:35 167

原创 deepin系统

最近发现了一个有点好玩的linux系统,deepin,差点装在新电脑上把系统都弄没了。于是在旧电脑上装了此系统。

2020-10-09 21:54:14 193

原创 OpenFeign基于Ribbon和Hystrix的声明式服务调用

Spring Cloud OpenFeign 基于Ribbon和Hystrix的声明式服务调用目录:简介工程目录每个工程具体职能介绍在相应的md文档中简介OpenFeign声明式服务调用,整合了Ribbon和Hystrix拥有两者的功能,具有负载均衡和服务容错保护。依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactI

2020-09-18 17:06:06 391

原创 hystrix服务容错(已经不维护)

Spring Cloud Hystrix:服务容器保护(已经不在维护,可以选择直接学习sentienl)简介Spring Cloud Netflix的核心组件之一,具有服务容错及线程隔离等一些列的服务保护功能。在微服务框架中,服务于服务之间通过远程调用的方式进行通信,一旦某个被调用的服务发生了故障,此时发生的故障就有可能蔓延,也就形成了雪崩效应,进而导致整个系统的瘫痪。熔断器模式下,某个服务发生了故障时,不会让调用者长时间的等待,而是能够返回一个相关的响应,不会让调用方长时间得不到响应占用线程,

2020-09-10 23:03:51 671

原创 在做项目优化工作,就整理了一些sql优化的总结(sql优化,索引和执行计划)

最近在由于比较闲,就向老大接了一个系统优化的工作。由于之前有接手一个项目,开发的同事建表没有建索引的习惯,前车之鉴我就直接从sql开始优化。索引普通索引:一个索引只包含一个列,一个表可以有多个单一索引。唯一索引:索引列的值必须唯一,但允许有空值。复合索引(联合索引):一个索引包含多个列。——————————————————————————————聚簇索引:并不是单独的索引类型,而是一种数据存储方式。按照每张表的主键构造的一颗b+树,同时叶子节点中存放了的就是整张表的行记录数据。每张表只能有一个

2020-08-23 19:26:45 385

原创 一些我日常工作使用的慢查询相关命令

– 打开慢查询日志,不使用后关闭,打开后会影响mysql的性能set global log_slow_queries = off;set global slow_query_log=1;– 查看日志是否开启show variables like “%slow%”;show variables like ‘%slow_query_log%’;– 查看日志保存在何处show variables like ‘%log_output%’;– 设置查询超时sql记录的阈值show variables

2020-08-21 09:24:50 86

原创 应用层解决读写分离方案

介绍解决数据库读写分离方案有,应用层解决数据库读写分离方案,中间件解决数据库读写分离两种方案。本文只介绍应用层解决读写分离方案。第一种方案(推荐)一 、查看AbstractRoutingDataSource类首先查看一个spring的一个类AbstractRoutingDataSource,查看其属性,注意红框。二、如何配置多数据源再查看类中的其它方法:setTargetDataSources与afterPropertiesSet(InitializingBean接口的实现)。setTarg

2020-08-18 16:21:25 408

原创 SpringCloud-Ribbon负载均衡

Spring Cloud Ribbon目录简介RestTemplate的使用依赖测试使用演示ribbon常用配置负载均衡策略简介Spring Cloud Netflix子项目的核心组件之一,主要给服务间调用及API网关转发提供负载均衡的功能。其中负载均衡均衡可以增加系统的可用性和扩展性。不多做赘述。RestTemplate的使用RestTemplate是一个HTTP客户端,我们可以使用它调用HTTP接口,支持GET、POST、PUT、DELETE等restful风格的接口方法。

2020-07-29 11:45:32 173

原创 关于MybatisGenerator如何删除注释,生成的类名与xml的文件名后缀自定义等。

介绍MybatisGenerator自动生成代码工具,此项目包含了,SqlServer配置文件,Oracle配置文件,Mysql配置文件。每个配置文件中的配置均有详细注释目前功能包括①生成dao层mapper,xml的mapper,表对应实体类model②修改生成dao类名称自定义(例:默认xxxMapper,改为自定义xxxDao),xml名称自定义,Example类名称自定义③为model生成序列化方法④为model生成toString方法⑤去除自动生成的注释⑥为实体类添加githu

2020-07-21 23:37:12 436

原创 注册到含有认证的注册中心(eureka)

配置文件中修改配置信息

2020-07-13 16:34:37 110

原创 给注册中心添加认证

给注册中心添加认证依赖<!--SpringSecurity--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>springboot 添加

2020-07-13 15:48:54 181

原创 eureka-server注册中心集群

在eureka-server创建两个项目配置文件 application-server1.properties、application-server2.properties复制,并设置启动的配置文件随便访问一个注册中心

2020-07-12 23:13:55 103

原创 eureka-client demo

创建maven工程添加对应依赖<!--eureka client--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependen

2020-07-12 19:52:30 566

原创 eureka-server注册中心demo工程创建演示

github地址:https://github.com/fee1/springcloud-learn-parent/tree/master/eureka-server写入配置启动@EnableEurekaServer注解不能少,表为注册中心服务访问localhost:10000

2020-07-10 17:48:42 212

原创 oracle数据库连接相关问题

IDEA连接数据库连接URL:jdbc:oracle:thin:@192.168.xxx.xxx/xxxx_xxxnavicat连接oracle数据库确保安装了instantclient工具中选择选项---->选择OCI---->选择instantclient文件下的oci.dll连接可能出现此问题nacivat与IDEA连接不一样,先用IDEA连接上后执行sql:select INSTANCE_NAME from v$instance将执行结果复制到SID名下...

2020-06-22 13:07:47 133

原创 fastDFS如何卸载

停止trackerd服务命令:service fdfs_trackerd stop停止storaged服务命令:service fdfs_storaged stop查看服务是否关闭成功命令:ps -ef | grep fdfs

2020-06-19 10:22:30 6982

原创 SpringBoot根据不同环境配置加载不同的配置文件----不定时更新

springboot根据默认配置文件选择启动时加载的配置

2020-06-14 22:50:07 780

原创 IDEA关于git、svn拉取项目需要注意的配置---不定期更新

我们创建或者拉取一个项目基本目录结构如下如果IDEA没有自动识别到这些目录,或者识别错误怎么修改如上我们的测试的resources的目录是自己创建的并没有识别到我们可以再左上角的File -> Project Structre -> Modules只需要选择的目录,然后点击Test Resources即可...

2020-06-14 20:10:48 580

原创 有关Spring中IOC的必知必会

什么是Spring的IOC?①:IOC(Inversion of Control) 称为控制反转,传统的java开发需要对象我们就直接new或者通过getInstance或者使用反射创建对象。②在Spring中创建对象可以使用xml配置文件的形式,也可以使用注解@Bean的方式让Spring在启动时创建配置的单例(多例)对象。我们可以直接使用Spring创建好的对象给我们使用。既然说到Spring的创建单例对象那么是单例的?怎么实现?单例模式就是有且只有一个创建好的对象,提供给需要给其它要用的类。

2020-06-04 23:06:06 358

原创 Spring源码学习——工程搭建测试

第一步:首先创建一个Maven工程第二步:在pom下添加依赖

2020-05-16 22:38:05 239

原创 学习Spring源码前必须要清楚的Spring最基本的架构

Spring的整体架构ps:我看的书比较老,所以有可能一些博客spring介绍的架构必然比我的还要完善,但这不对学习源码有任何影响。(1)Core ContainerSpring的核心容器,包含了Beans、Core、Context、Expression Language模块。Core和Beans为Spring的基础模块,提供控制反转(IOC)和依赖注入(DI)的特性支持。Spring的基础容器概念为BeanFactory,它提供经典的工厂模式来实现消除对程序单例模式的需求(意思就是以前需要用到就

2020-05-16 21:57:05 196

原创 Spring源码解读需要了解的注解

——1.@Configuration:该注解表示声明该类未配制类,使用此注解后,spring会自动将该类加载到容器中。——2.@ComponentScan:在配制类下使用该注解,该注解能够配制spring扫描的包位置。该注解还有以下功能:includeFilters 扫描指定的组件@Filter(type classes)excludeFilters 扫描的时候以什么规则排除组件@Fi...

2020-05-15 23:53:53 115

原创 找房网项目(微服务)

项目专栏(项目重难点与问题解决方案)链接:https://blog.csdn.net/weixin_45528987/category_9886265.html1.项目演示 :用户操作视频演示: 找房网用户操作视频演示 管理员操作视频演示: ...

2020-04-30 17:06:50 329

原创 微服务的登录校验(gateway过滤器or拦截器实现)

问题来源在做找房微服务的时候,一般只有登录的用户能够预约房源操作,或者修改资料等密码操作,管理员也需要登录的情况下才能对房源进行管理上架、添加等操作。假如我们没一个方法都分别对其权限鉴定,用户判断是否登录,那么一个团队的开发每一个成员涉及到需要鉴权或者判断用户是否登录的情况,都需要写一套相同的代码,或者调用相同的接口,可是这些实际上应该是与本次逻辑不相干的代码,开发小组的成员应该更专注于本次需...

2020-04-28 22:42:19 10525 12

原创 OpenFeign总是走熔断服务,调用的接口却正常执行返回

原因:调用服务执行逻辑时长过长,将feign链接超时时间与处理超时时间调长一些即可feign.hystrix.enabled=false //Feign是否启用断路器,默认为falsefeign.client.config.default.connectTimeout=10000 //Feign的连接建立超时时间,默认为10秒feign.client.config.default.readT...

2020-04-27 16:02:01 3566

空空如也

空空如也

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

TA关注的人

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