自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无名程序员

一个兴趣使然的博客,印象笔记的整理

  • 博客(84)
  • 资源 (3)
  • 收藏
  • 关注

原创 spring自定义Bean的创建

spring自定义Bean的创建背景众所周知,spring创建Bean的方式为工厂方式,如果想在Bean创建的时候做下扩展处理,spring停供了相应的扩展点进行扩展.spring在容器初始化时,先读取Bean的定义,例如xml中的定义,config class中的定义,存储在beanDefinitionMap 中如果想改变Bean的内容,可以改变Bean的定义,从而使之后的Bean的创建实例都改变BeanFactoryPostProcessor就是用来改变Bean的定义的,Abstr

2021-07-27 18:06:21 785

原创 spring回调机制-aware接口

spring回调机制-aware接口定义由启动容器类进行分析,AbstractApplicationContext中的prepareBeanFactory方法 /** * Configure the factory's standard context characteristics, * such as the context's ClassLoader and post-processors. * @param beanFactory the BeanFactory to con

2021-07-27 15:22:28 845

原创 gradle springboot多模块基本写法

父模块import java.time.OffsetDateTimeimport java.time.format.DateTimeFormatterbuildscript { repositories { mavenLocal() maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } mavenCentral() // grandle插件

2021-07-22 17:33:37 475

原创 feign Ambiguous mapping 解决方式

Feign Ambiguous mapping 解决方式背景feign在使用过程中,一般先定义接口,再定义具体实现的controller,如下所示@FeignClient(name = "shore-app")public interface StoreApi { @GetMapping("/api/store/getStoreNum") Integer getStoreNum(); @GetMapping("/api/store/getStoreNumByConditi

2021-07-22 15:18:45 2114 4

原创 枚举校验实现

枚举校验背景后端处理前端回传的参数,经常有枚举类型的校验,一般使用用Bean validator 去做校验,但是validator功能较弱这时候就用自定义校验规则去实现实现定义注解import jakarta.validation.Constraint;import jakarta.validation.Payload;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import

2021-07-20 17:15:30 989 1

转载 feign注册失败

一、关于Feign在微服务架构开发是,我们常常会在一个项目中调用其他服务,其实使用Spring Cloud Rbbon就能实现这个需求,利用RestTemplate 的请求拦截来实现对依赖服务的接口调用, 但是实际项目中对服务依赖的调用可能不止于 一 处,往往 一 个接口会被多处调用,所以我们通常都会针对各个微服务自行封装 一 些客户端类来包装这些依赖服务的调用。 这个时候我们会发现,由于 Re...

2018-12-09 18:04:09 1551

转载 SQL优化简单总结

SQL优化简单总结查询优化避免全表扫描,优先考虑在where和order by涉及的列上建立索引is null值判断会导致引擎放弃使用索引,变成全表扫描,如:select id from t where num is null-- 导致全表扫描**!=或<>**操作符也会导致引擎放弃使用索引,进行全表扫描,如:select id from t whe...

2018-11-13 10:54:56 166

原创 java虚拟机结构

java虚拟机结构类加载器:负责从文件系统或网络中加载Class信息,加载到方法区的内存里面方法区:存放类信息,常量信息,常量池信息,包括字符串字面量和数字常量java堆:虚拟机启动时建立java堆,是主要的内存工作区域,几乎所有对象实例存放到java堆中,堆空间是所有线程共享的直接内存:javaNIO允许java使用直接内存,提高性能,性能优于java堆,读写频繁的场合下用栈:每个虚...

2018-11-07 17:44:25 183

原创 数据库4种隔离级别

数据库4种隔离级别READ UNCOMMITED(未提交读)问题:事务没提交,其他事务可看到数据,脏读READ COMMITED(提交读)大多数数据库系统的默认隔离级别是READ COMMITTED,这种隔离级别就是一个事务的开始,只能看到已经完成的事务的结果,正在执行的,是无法被其他事务看到的。这种级别会出现读取旧数据的现象问题:事务执行到一半,其它事务不知道,可能读取了事务前的数据...

2018-11-07 16:48:57 475

转载 interrupt、interrupted 、isInterrupted 区别

interrupt、interrupted 、isInterrupted 区别1、interrupt interrupt方法用于中断线程。调用该方法的线程的状态为将被置为”中断”状态。注意:线程中断仅仅是置线程的中断状态位,不会停止线程。需要用户自己去监视线程的状态为并做处理。支持线程中断的方法(也就是线程中断后会抛出interruptedException的方法)就是在监视线程的中断...

2018-06-21 11:16:30 357

转载 Java 多线程:InheritableThreadLocal 实现原理

Java 多线程:InheritableThreadLocal 实现原理前言介绍 InheritableThreadLocal 之前,假设对 ThreadLocal 已经有了一定的理解,比如基本概念,原理,如果没有,可以参考:Java 多线程:threadlocal关键字。这里再复习下 ThreadLocal 的原理,因为会对 InheritableThreadLocal 的理解 ...

2018-06-19 09:28:46 186

原创 netty入门-helloword介绍

netty入门-helloword介绍server代码样例package day1;import java.net.InetSocketAddress;import java.util.concurrent.Executor;import java.util.concurrent.Executors;import java.util.logging.Logger;impo...

2018-04-01 10:38:17 199

原创 netty入门-io介绍

netty入门-io介绍传统io样例package com.hrf.io;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import java.util.logging.Logger;public cl...

2018-03-31 11:07:03 244

转载 Arrays.asList传入参数的问题

做了一道笔试题,回来验证结果的时候发现里面有个陷阱,找了一下才发现Arrays.asList这个方法有坑 asList的定义如下public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); }这个T必须是对象类型。好比我们不能new ArrayList 只能new ...

2018-03-14 00:03:45 1459

转载 关于MySQL 通用查询日志和慢查询日志分析

MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。1)通用查询日志:记录建立的客户端连接和执行的语句。2)慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询(1)通用查询日志在学习通用日志查询时,需要知道两个数据库中的常用命令:1) showvari...

2018-03-13 12:08:15 180

转载 java多态

java多态理解最近面试做到一些笔试题,对多态的理解,脑袋一片空白,既熟悉又陌生的概念,一下子说不出来,确实是做多年java的我的一个失败,所以又去找了一下概念,恶补一下。个人理解的多态:父类与子类之间相互类型转换(子类能上下转,父类不能强转子类),所表现出来的行为属性不一样首先来个标准的概念说明 多态: java的多态体现在一个变量可以引用多个不同类型的对象,前提是这些不同类必...

2018-03-11 20:41:17 189

原创 设计模式回顾-Observer模式

设计模式回顾-Observer模式(watcher模式)观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通...

2018-03-11 15:44:24 179

原创 设计模式回顾-Singleton模式

设计模式回顾-Singleton模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、...

2018-03-11 15:04:28 131

原创 设计模式回顾-factory模式

设计模式回顾-factory模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟...

2018-03-11 14:34:24 159

原创 设计模式回顾-Template模式(实际处理交给子类)

设计模式回顾-Template模式(实际处理交给子类)模板模式在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义...

2018-03-10 18:13:14 248

原创 设计模式回顾-Adapter模式(换个包装再利用)

设计模式回顾-Adapter模式(换个包装再利用)适配器模式适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。介绍意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决:主要解决在软件系统中,常常要将一些”...

2018-03-10 17:26:56 152

原创 设计模式回顾-Iterator模式

设计模式回顾-Iterator模式迭代器模式迭代器模式(Iterator Pattern)是 Java编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。介绍意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个整合对象。何时使用:...

2018-03-10 15:02:37 119

转载 Linux日志分析命令之cut

Linux日志分析命令之cutcut文件内容查看 显示行中的指定部分,删除文件中指定字段说明该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的内容输出到标准输出上;其二是连接两个或多个文件,如cut fl f2 > f3将把文件fl和几的内容合并起来,然后通过输出重定向符“>”的作用,将它们放入文件f3中。当文件较大时,...

2018-02-28 21:39:46 354

转载 mysql查看SQL语句执行效率

mysql查看SQL语句执行效率主要用Explain命令去查看语法 : explain select … from … [where ...]例如:EXPLAIN select * from city 结果如下: id select_type table type possible_keys key key_len ref rows ...

2018-02-28 21:00:57 1099

原创 CentOS7 开放防火墙端口命令

CentOS7 开放防火墙端口命令关闭防火墙systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动开启端口firewall-cmd --zone=public --add-port=80/tc...

2018-02-12 22:33:18 216

原创 centos7 yum安装mysql5.6

centos7 yum安装mysql5.6安装过程centos7默认的软件源是使用最新的版本的mysql(5.7),所以想装回旧的版本需要进行一些其他的操作,下面介绍一下通过yum安装mysql5.6先更新软件包到5.6版本rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm...

2018-02-11 22:56:38 214

原创 mysql主从架构分析以及读写分离实践

mysql主从架构分析以及读写分离实践为什么要使用主从同步实时灾备,用于故障切换读写负载均衡各种独占数据库操作专用mysql具体内部实现主从原理 master节点主要通过bin-log与slave节点进行交互,每当写master节点,在bin-log中就会记录上相应的操作,bin-log不记录查询操作。slave节点通过复制master的bin-log,解析成...

2018-02-07 17:13:03 259

原创 互联网垂直架构中session共享解决方案

互联网垂直架构中session共享解决方案1.session sticky方式缺点:其中一台tomcat挂了,这tomcat上的session全部丢失,不符合高可用2.session Relication方式session复制的解决方式,这种方式实现简单,不需要更改代码,几台tomcat之间通过插件把session相互共享 缺点:增加了session在内网的传输开...

2018-02-05 11:07:03 456

原创 JVM类加载器回顾

JVM知识回顾JVM基本结构类加载器,执行引擎,运行时数据区,本地接口 ClassFile -> ClassLoader->运行时数据区->执行引擎,本地库接口->本地方法库类的转载加载,连接(验证,准备,解析),初始化,使用,卸载 Class 保存类的定义或者结构,放在堆中类的初始化执行类的构造器 为类的静态变量赋予制衡却的初始值构造器: 1. s

2018-02-03 12:06:06 168

原创 spring cloud gateway API zuul配置

zuul是一个路由功能组件,当连上eureka后,可通过url/服务id/api进行服务的调用,例如,原生为http://192.168.2.201:8080/provider/1 使用zuul为http://192.168.2.201:8040/simple-provider/provider/1 zuul配置(path+serviceId)配置方式一zuu

2018-02-01 10:38:41 934

原创 spring cloud hystrix在普通应用和feign上使用

hystrix普通用法引入包dependency> groupId>org.springframework.cloudgroupId> artifactId>spring-cloud-starter-hystrixartifactId>dependency>在main类中添加注解@EnableCircuitBreaker@SpringBootApp

2018-01-29 17:56:14 396

转载 spring cloud eureka配置

Spring Cloud中,Eureka常见问题总结。指定Eureka的Environment eureka.environment: 指定环境 参考文档:https://github.com/Netflix/eureka/wiki/Configuring-Eureka指定Eureka的DataCenter eureka.datacenter: 指定数据中心 参考文档:https:

2018-01-27 15:01:49 915

原创 spring cloud eureka配置要点

register-with-eureka:如果只想用eureka服务而不想被eureka发现,配falsefetch-registry:是否从eureka上拉取信息

2018-01-27 14:06:51 340

原创 spring cloud eureka高可用配置

要点:配置2个eureka服务,相互连通即可配置2份配置【ha-a】server: port: 8761spring: profiles: ha-aeureka: instance: hostname: localhost client: service-url: defaultZone: http://admin:admin@loc

2018-01-26 16:28:05 7505

原创 spring cloud java.util.concurrent.TimeoutException的三种解决方式

spring cloud java.util.concurrent.TimeoutException解决方式设置熔断器检测时间(默认1秒)hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 5000关闭熔断器超时检测时间功能,也就是不超时hystrix.command.default.

2018-01-26 13:36:55 32621

原创 spring cloud feign开启日志

spring cloud feign开启日志配上日志级别的bean import feign.Logger; @Bean public Logger.Level feignLoggerLevel() { return feign.Logger.Level.FULL; }可看到具体接口调用的日志2018-01-26 12:

2018-01-26 12:59:17 1184

转载 centos防火墙切换,开放8080端口

CentOS7默认的防火墙不是iptables,而是firewalle.1)先检查是否安装iptables服务#先检查是否安装了iptablesservice iptables statusiptables -V#安装iptablesyum install -y iptables#升级iptablesyum update iptables

2018-01-25 14:10:46 494

转载 java并发(wait-await-signal-notify-signalAll-notifyAl

3 Java中的锁与排队上厕所。锁就是阻止其它进程或线程进行资源访问的一种方式,即锁住的资源不能被其它请求访问。在JAVA中,sychronized关键字用来对一个对象加锁。比如:public class MyStack {int idx = 0;char [] data = new char[6];public synchronized void push(c

2018-01-24 09:07:34 510

原创 java线程状态

1:创建2:运行3:临时阻塞4:冻结5:消亡

2018-01-24 09:07:19 123

转载 java内部类

因为成员内部类需要先创建了外部类,才能创建它自己的内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。*内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。 注意:内部类是一个编译时的概念,一旦编译成功,就会成为

2018-01-24 09:07:03 143

Ant入门必读

Ant权威指南,很不错的一本ant的入门书籍

2015-06-19

C语言趣味程序百例精解

集合了大部分c语言经典例子,对刚学完c语言又想提高编程水平的人,有很大的借鉴和学习作用

2013-07-15

空空如也

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

TA关注的人

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