自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(179)
  • 资源 (1)
  • 收藏
  • 关注

原创 idea 所有行变为一行的快捷键

这样就可以将文件中的所有行合并为一行了。但是请注意,这个操作可能会移除一些必要的空格或者其他分隔符,可能会导致代码无法正确运行。在进行这个操作之前,最好备份一下你的代码,以防止出现问题。在IntelliJ IDEA中,你可以使用以下步骤将所有的行变为一行:打开你想要修改的文件。按下 Ctrl + A 来全选所有内容。来合并所有选中的行。

2023-12-04 10:17:35 595

原创 mybatis默认一级缓存开启吗-spring封装后默认统一关闭

mybatis默认一级缓存开启吗-spring封装后默认统一关闭

2023-02-09 15:19:00 646 1

原创 MySQL 中的 INSERT 是怎么加锁的?

程序员的成长之路互联网/程序员/技术/资料共享关注阅读本文大概需要 12分钟。来自:https://www.aneasystone.com/archives/2018/06/insert-locks-via-mysql-source-code.html看到热心网友在评论中提出的一个问题,我还是彻底被问蒙了。他的问题是这样的:加了插入意向锁后,插入数据之前,此时执行了 select...lock in share mode 语句(没有取到待插入的值),然后插入了数据,下一...

2022-05-19 12:29:50 2096 1

原创 BeanPostProcessor

BeanPostProcessor,针对所有Spring上下文中所有的bean,可以在配置文档applicationContext.xml中配置一个BeanPostProcessor,然后对所有的bean进行一个初始化之前和之后的代理。BeanPostProcessor接口中有两个方法: postProcessBeforeInitialization和postProcessAfterInitialization。 postProcessBeforeInitialization方法在bean初始化之前执行,

2022-05-18 20:42:25 267

原创 Spring加载bean的顺序

如果是类加载到Spring容器的顺序,默认是按照类名升序的顺序加载。方法,如果没有指定顺序或者优先级规定,@Bean按照代码的顺序来进行加载;如果在某个Bean加载过程中调用还没来得及加载的Bean的方法,则(还没来得及加载的Bean)会懒加载此Bean。@Beanpublic String fun2() { System.out.println("fun2"); Api api1 = fun1(); System.out.println(api1.hashCode())

2022-05-16 10:28:37 3959

原创 理解数据异构、数据聚合以及数据闭环

一、概述商品详情页的相关数据来源于多个不同的地方,比如订单微服务中的评价数据、库存微服务中的库存数据、活动微服务的活动数据、推荐微服务中的推荐数据、商品微服务自己的相关数据。如果正常来做,我们需要同时请求多个微服务获取相关数据,再将数据进行整合,然后返回给前端。但这样做存在一些问题,其一是响应速度慢,即使我们并行请求多个微服务,也不会太快,而且还要进行数据整合。其二是一旦其中一个微服务挂掉,就会影响到商品微服务的正常运行。基于此,我们通过MongoDB+RabbitMQ实现数据异构聚合,加速

2022-03-24 15:58:32 1373

原创 如何理解软件的质量

什么是质量?词典的定义是:① 典型的或本质的特征;② 事物固有的或区别于其他事物的特征或本质;③ 优良或出色的程度。CMM对质量的定义是:① 一个系统、组件或过程符合特定需求的程度;② 一个系统、组件或过程符合客户或用户的要求或期望的程度。上述定义很抽象,软件开发人员看了准会一脸迷惘。软件的质量不容易说清楚,但我们今天非得把它搞个水落石出不可。就以健康做类比吧。早先人们以为长得结实、饭量大就是健康,这显然是不科学的。现代人总是通过考察多方面的生理因素来判断是否健康,如测量身高、体重、心跳、血

2022-03-01 14:54:37 911

原创 java静态代码块和不写static的非静态代码块区别

1、静态代码块是类的代码,非静态代码块是对象的代码。2、静态代码块是static修饰的代码块,反之没有用static修饰的代码块为非静态代码块。3、静态代码块只在第一次new时执行一次,之后不再执行。而非静态代码块每new一次就执行一次。静态代码块 > 非静态代码块class Demo { static { System.out.print(" 静态代码块 "); } { System.out.print...

2022-03-01 14:52:54 670 1

原创 如何衡量架构合理性

衡量架构的合理性架构为业务服务,没有最优的架构,只有最合适的架构,架构始终以高效,稳定,安全为目标来衡量其合理性。架构设计本质就是解决软件复杂度带来的问题,软件复杂度表现形式有很多种,比如业务复杂度、性能复杂度、可用性复杂度、可扩展性复杂度、安全复杂度等;任何一个系统都有它侧重解决的复杂度问题,理解每个架构方案背后需要真正解决的是软件复杂度的什么问题,是评判一个架构设计目的性的关键因素,这也是做架构设计中常提的系统约束条件。业务复杂度体现的是如何来拆解业务,找到合适的软件元素和组件,按合适结构进行

2022-02-08 21:28:08 9775

原创 终于搞清楚了:java8的接口为什么新增default,为Lambda服务

终于搞清楚了:java8的接口为什么新增default,为了Lambda服务要用lambda表达式,必须要求接口,有且只有一个抽象方法,就是函数式接口,也可以加上注解来约束,@FunctionalInterface,多写或者少写会报错,Object的方法如equals等特殊不计算。@FunctionalInterfaceinterface HelloLa2{ int sayHello(int a); }//只有一个参数的情况,()也可以省略class cli.

2022-01-28 17:25:36 751

原创 终于搞清楚了,Java、Spring异常回滚和@Transactional加不加rollbackFor = Exception.class

先说结论:1、加上没有错。@Transactional(rollbackFor = Exception.class)2、有spring的情况下SQLException,被包装为RuntimeException。org.springframework.dao.DuplicateKeyException来自spring-tx-4.0.0.RELEASE.jar 反编译可见: java.lang.Object ...

2022-01-21 15:54:33 1761

原创 UML类图基础

1.类图基础属性类图的表示-表示private #表示protected ~表示default,也就是包权限 _下划线表示static 斜体表示抽象 2.类与类之间关系在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)类与类之间的关系2.1泛化介绍:..

2022-01-12 13:14:12 148

原创 springboot配置属性读取

利用@Value注解将对应的属性注入到field上 @Value("${com.Code}") private String comCode;

2022-01-10 15:12:00 144

原创 zookeeper一致性协议

zookeeper实现数据一致性的核心是ZAB协议(Zookeeper原子消息广播协议)。该协议需要做到以下几点:(1)集群在半数以下节点宕机的情况下,能正常对外提供服务;(2)客户端的写请求全部转交给leader来处理,leader需确保写变更能实时同步给所有follower及observer;(3)leader宕机或整个集群重启时,需要确保那些已经在leader服务器上提交的事务最终被所有服务器都提交,确保丢弃那些只在leader服务器上被提出的事务,并保证集群能快速恢复到故障前的状态。

2022-01-07 15:36:28 553

原创 为什么static和final一起使用

示例:private final static SingleTon instance=new SingleTon();static和final的意义是不同的static修饰的时候代表对象是静态的,而final修饰的时候代表对象只能赋值一次,他们连用的时候是因为定义的那个对象既要它是静态的,也要求它的值不能再被修改。...

2022-01-06 20:51:20 1078

原创 Spring Ioc核心代码

1、反射public ClassPathXmlBeanFactory() throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException { String u="com.spring.UserDaoImpl"; Object uo=Class.forName(u).newInstance();

2022-01-06 16:38:28 280

原创 断点太多导致intellij debug模式提示 Method breakpoints may dramatically slow down debugging 解决办法

断点太多,取消方法如下:点击图中按钮 或者 快捷键(Ctrl - Shift -F8 ) 出现下图

2021-12-29 19:12:57 395

原创 Guava cache 机制及源码分析

Guava是Google开源出来的Java常用工具集库,包括集合,缓存,并发,字符串,I/O操作等在Java开发过程中经常需要去实现的工具类。Guava Cache 介绍在介绍Guava Cache使用之前,先需要引入下官方推荐的使用场景: * 愿意消耗一些内存空间来提升速度; * 能够预计某些key会被查询一次以上; * 缓存中存放的数据总量不会超出内存容量(`Guava Cache`是单个应用运行时的本地缓存)。 不管性能,还是可用性来说,Guava...

2021-12-24 14:03:52 198

原创 json解析小冒号:出错

Json 字符串中有一个 value 中含有冒号(:)特殊字符,需要转义:解决方法:1、使用大冒号替换:2、转义后//:写入3、替换其他符号

2021-12-23 09:53:03 1678

原创 ToBToCToM不同业务场景的技术调整

ToBToCToM不同业务场景的技术调整 详细方向 核心技术关注 开发细节 ToC 高并发、高性能、高可用、强扩展 缓存、异步、读写分离、多线程 ToB 数据一致性、业务复杂度 监控、对比、修复 ToM 模型通用、流程复用 可复用、可通用、流程统一 ..

2021-12-22 14:41:48 679

原创 为什么事务要单独一个类,避免因为同类中调用不走代理对象

为什么事务要单独一个类,避免因为同类中调用不走代理对象

2021-12-20 09:49:57 275

原创 Optional.of()和Optional.ofNullable()区别

Optional.of()或者Optional.ofNullable():创建Optional对象,差别在于of不允许参数是null,而ofNullable则无限制。// 参数不能是null,是null抛异常Optional<Integer> optional1 = Optional.of(1);// 参数可以是nullOptional<Integer> optional2 = Optional.ofNullable(null);// 参数可以是非nullOpt..

2021-12-15 12:44:26 12851 1

原创 PMP项目管理理论介绍

管理知识体系十大知识领域:1、整合管理:包括对隶属于项目管理过程组的各种过程和项目管理活动进行识别、定义、组合、统一和协调的各个过程。2、范围管理:包括确保项目做且只做所需的全部工作,以成功完成项目的各个过程。3、进度管理:项目进度管理包括为管理项目按时完成所需的各个过程。4、成本管理:包括为使项目在批准的预算内完成而对成本进行规划、估算、预算、融资、筹资、管理和控制的各个过程,从而确保项目在批准的预算内完工。5、质量管理:包括把组织的质量政策应用于规划、管理、控制项目和产品质量要求

2021-12-14 17:07:01 632

原创 mysql 强制读主库

1、我们通过在sql的前面加一些特殊的标记,来表示强制走主库。如:/*master*/SELECT*FROMuser2、在开启了事务的情况下,一个事务中的sql都会走主库

2021-12-13 14:44:36 2457 1

原创 解决JSON parse error: Unrecognized field xxx

出现原因:前后端参数不一致,通常前端多传了参数。可以在接收对象上设置@JsonIgnoreProperties(ignoreUnknown = true)

2021-12-08 14:57:17 9182

原创 【终于搞清楚了】spring xml头详解

<?xml version="1.0" encoding="UTF-8"?>1、xmlns是XMLNameSpace的缩写,声明xml文件默认的命名空间,类似package的概念。<beans xmlns="http://www.springframework.org/schema/beans"2、xsi是指xml文件遵守xml规范,xml schema instance,xml模式实例,是指具体用到的schema资源文件里定义的元素所准守的规范。即/spring-beans-2

2021-12-03 17:34:10 417

原创 为什么java类的main方法不能使用this关键字

publicstaticvoidmain(Stringargs[]){}因为main方法是静态方法属于类,它们将与类一起加载到内存中。关键字“ this”用作对实例的引用。由于静态方法没有(属于)任何实例,因此不能在静态方法中使用“ this”引用。...

2021-11-29 17:22:23 872

原创 谷歌guava cache的getIfPresent和getUnchecked区别

LoadingCache: (1)、get(K):使用这个方法要么返回已经缓存的值,要么使用CacheLoader向缓存原子地加载新值。由于CacheLoader可能抛出异常,LoadingCache.get(K)也声明为抛出ExecutionException异常。 如果你定义的CacheLoader没有声明任何检查型异常,则可以通过 getUnchecked(K) 查找缓存;但必须注意,一旦CacheLoader声明了检查型异常,就不可以调用getUnchecked(K)...

2021-11-29 17:19:23 12387

原创 Spring AOP嵌套调用的问题 (同一类方法内调用切面切不到)

在自己的 Service 类中使用 this 关键字嵌套调用同类中的其他方法时,由于 this 关键字引用的并不是该 Service Bean 对象的代理对象,而是其本身,故 Spring AOP 是不能拦截到这些被嵌套调用的方法的。现在以调试方式运行这个应用,你会发现在 doSomething1() 中调用 doSomething2() 方法的时候并未去执行CustomerServiceProxy 类的 doBefore()、doAfter() 方法。再来看看这句关键代码:doSomething2()

2021-11-18 16:30:46 520

原创 java socket编程中backlog的含义

能够成功创建客户端套接字的个数,刚好就是创建ServerSocket时候指定的backlog。import java.net.ServerSocket;public class Server { public static void main(String[] args) throws Exception{ // port:8888,backlog:5 ServerSocket server = new ServerSocket(888...

2021-11-17 20:43:56 600

原创 idea文件上横线

看看类定义前面是不是有@Deprecated注解,意思是这个类已经废弃

2021-11-17 14:54:00 572

原创 同步队列SynchronousQueue使用场景介绍

同步队列:SynchronousQueue,零容量的SynchronousQueue,一进一出,避免队列里缓冲数据,这样在系统异常关闭时,就能排除因为阻塞队列丢消息的可能SynchronousQueue没有容量,是无缓冲等待队列,是一个不存储元素的阻塞队列。使用SynchronousQueue阻塞队列一般要求maximumPoolSizes为无界(Integer.MAX_VALUE),避免线程拒绝执行操作。风险:机器线程耗尽,导致宕机...

2021-11-15 13:13:48 3144 1

原创 数据库中的Schema是什么?XML的Schema是什么

在数据库中,schema(发音 “skee-muh” 或者“skee-mah”,中文叫模式)是数据库的组织和结构。schemas和schemata都可以作为复数形式。模式中包含了schema对象,可以是表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary key)、外键(foreign key)等。数据库模式可以用一个可视化的图来表示,它显示了数据库对象及其相.

2021-11-15 11:53:10 900

原创 idea如何显示Connected to the target VM, address: ‘‘, transport: ‘socket‘等信息

使用debug就可以了

2021-11-12 18:51:22 584

原创 thrift 注解与idl对比

thrift作为跨语言的RPC框架,在公司内部得到大量使用,而thrift支持注解格式与idl生成JavaBean两种方式。经过理解多wiki后,总结两者的特点如下。对比:注解格式的优势:1. IDE代码简洁;2. java间相互调用时,JavaBean是可以直接共享的;3. 支持java的Deprecated语法。idl格式的优势:1. 支持跨语言;2. thrift不支持泛型、重载,在idl可以做更好的限制,如果用注解,thrift新手可能会使用泛型导致问题。此外,两者不宜混用,否则容易造

2021-11-10 18:37:32 599

原创 Mysql的自增AUTO_INCREMENT传null

如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。 当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值。

2021-11-10 12:15:56 1037

原创 系统主R的职责:三个把控四个方面

系统主R的职责:三个把控:对项目质量的把控,对项目进度的把控、对项目风险的把控四个方面:业务理解力、技术能力、团队影响力、跨部门沟通协作能力。

2021-11-09 21:15:07 5016

原创 定时任务的三种方式

1、定时任务扫描2、延时队列3、延时任务

2021-11-09 21:12:10 105

原创 MySQL的on duplicate key update 使用说明与总结

一,构造测试数据注意里面的唯一键drop table if exists tbl_test;create table tbl_test(id int primary key auto_increment,name varchar(30) unique not null,age int comment '年龄',address varchar(50) comment '住址',update_time datetime default current_timestamp on update c

2021-11-09 17:08:17 893

原创 IDEA批量移动代码快捷键

左右移动:【Tab】:选中代码右移动【Shift】+【Tab】:选中代码左移动上下移动:【Alt】+【Shift】+【↑,↓】:选中代码上下移动

2021-11-05 20:45:27 986

C++游戏编程C++游戏编程,C++游戏编程,C++游戏编程C++游戏编程

C++游戏编程,C++游戏编程,C++游戏编程C++游戏编程 C++游戏编程,C++游戏编程,C++游戏编程C++游戏编程 .C++游戏编程,C++游戏编程,C++游戏编程C++游戏编程 .C++游戏编程,C++游戏编程,C++游戏编程C++游戏编程 .C++游戏编程,C++游戏编程,C++游戏编程C++游戏编程 .C++游戏编程,C++游戏编程,C++游戏编程C++游戏编程 . . . .

2010-07-11

空空如也

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

TA关注的人

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