自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring——定制 Bean 的性质

如果是true,则该对象此时启动,而不是等待显式调用上下文或其自己的start()方法(与上下文刷新不同,对于标准上下文实现,上下文启动不会自动发生)。然后,当 ApplicationContext本身收到启动和停止信号时(例如,对于运行时的停止/重新启动场景),它会将这些调用级联到Lifecycle上下文中定义的所有实现。因此,将拦截器应用于init方法会不一致,因为这样做会将目标 bean 的生命周期与其代理或拦截器耦合,并在您的代码直接与原始目标 bean 交互时留下奇怪的语义。

2024-05-30 17:34:40 1166

原创 Spring——(Bean Scopes)Bean 范围

bean 定义是一个配方的想法很重要,因为这意味着,与类一样,您。

2024-05-30 11:44:18 431

原创 Spring——依赖项

依赖注入。

2024-05-29 15:39:10 760

原创 深入理解java虚拟机-2.虚拟机执行子系统

今天的计算机仍然只能识别0和1,但由于最近十年内虚拟机以及大量建立在虚拟机之上的程序语言如雨后春笋般出现并蓬勃发展,把我们编写的程序编译成二进制本地机器码(Native Code)已不再是唯一的选择,越来越多的程序语言选择了与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。Java虚拟机可以支持方法级的同步和方法内部一段指令序列的同步,这两种同步结构都是使用管程(Monitor,更常见的是直接将它称为“锁”)来实现的。

2024-05-23 14:58:26 941

原创 Spring官网资料介绍和总结

依赖注入 (DI)是 IoC 的一种特殊形式,对象仅通过构造函数参数、工厂方法的参数或在对象实例上设置的属性来定义其依赖关系(即它们使用的其他对象)。由工厂方法构造或返回,然后,IoC 容器在创建 bean 时注入这些依赖项。这个过程从根本上来说是 bean 本身的逆过程(因此得名“控制反转”,不再由程序员new对象和销毁对象,将控制权交给Spring管理),通过使用类的直接构造或诸如服务定位器模式之类的机制来控制其依赖项的实例化或位置。和是 IoC 容器的基础。BeanFactory 接口。

2024-05-23 14:54:43 916

原创 java8 Stream使用中的一些实践

id为key user 为value 由于user2和user3的id相同,所以会报错。可以使用filter方法过滤掉null值。把userList转换为userMap。明确指定key冲突时选择哪一个。

2024-05-15 15:21:30 411 1

原创 日志traceId追踪

SLF4J日志框架提供了一个MDC(Mapped Diagnostic Contexts)工具类MDC可以帮我们记录追踪日志的功能,它支持Log4J和LogBack两种日志框架,通常打印出的日志会有线程号等信息来标志当前日志属于哪个线程。使用日志控件提供的MDC功能,生成一个唯一序列标记一个线程的日志。MDC原理简介MDC 可以看成是一个与当前线程绑定的哈希表,可以往其中添加键值对。MDC 中包含的内容可以被同一线程中执行的代码所访问。

2024-05-07 19:43:00 463

原创 log4j2配置日志

Apache Log4j 2是日志框架Log4j的升级,它比其前身Log4j 1.x提供了重要的改进,并且参考了Logback中许多有用的改进,同时修复了Logback的一些固有问题。本文事例中configuration下有三个节点properties:配置文件中用到的参数设定、被下面的appenders、loggers配置项引用appenders:日志的输出源:设置日志输出目的地,内容和格式等。loggers:日志的输入源:设置日志级别和使用的Appenders。</</

2024-05-07 19:14:25 1516

原创 Arthas介绍及使用技巧

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

2024-04-22 20:48:56 844

原创 计算机网络—— book

在网络核心部分起特殊作用的是路由器 (router),它是一种专用计算机(但不叫做主机)。路由器是实现分组交换 (packet switching)的关键构件,其任务是转发收到的分组 ,这是网络核心部分最重要的功能。为了弄清分组交换,下面先介绍电路交换的基本概念。

2024-04-22 10:19:25 925

转载 com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 0, maxActive20

记druid 连接池没满,但超时问题从这个异常信息的描述来看,跟常规的线程池满又不一样,通过异常信息来看,线程池没满(active<maxActive),但是获取连接超时,有点无头脑。

2024-04-17 10:02:21 2964

原创 SpringMVC设置全局异常处理器

首先 ControllerAdvice(RestControllerAdvice ) ,ControllerAdvice 是无法处理。2、拦截器中发生异常,拦截器中直接返回错误(通过response.getOutputStream().write() 直接写错误信息)1、catch后通过转发到异常页面(设置ModelAndView)在项目中我们有需求做一个全局异常处理,来规范所有出去的异常信息。下面介绍controller层的全局异常设置。全局异常处理也有多种方式。

2024-03-28 19:57:08 535

转载 idea 设置注释链接——点击跳转到指定的类

idea 设置注释链接——点击跳转到指定的类。

2024-03-27 15:02:47 749

原创 解决Request请求中流不能读两次的问题

调用reset()方法的前提是已经重写了reset()方法,当然能否reset也是有条件的,它取决于markSupported()方法是否返回true。当我们调用getInputStream()方法获取输入流时得到的是一个InputStream对象,而实际类型是ServletInputStream,它继承与InputStream。我们再来看看ServletInputStream,可以看到该类并没有重写mark(),reset()以及markSupported()方法。这导致流读取之后,后面无法再次读取。

2024-03-27 10:19:33 543

原创 解决拦截器与swagger相互影响的问题

在所有 Spring 应用程序中启用 mvcmatchers,将 @EnableWebMvc 注释放在 Spring Boot 应用程序的主类之上,如下所示。在 spring 中启用 mvcmatchers 创建一个配置文件供 swagger 使用。拦截器本来好好的,项目中添加了swagger后拦截器失效了。在您想要的任何地方创建一个用于 swagger 配置的文件。@EnableSwagger2**,然后问题解决了。上都加上了**@EnableWebMvc。swagger版本2.9.2。

2024-03-26 19:48:41 355

原创 Spring 存在多个AOP切面时,执行顺序问题

切面的配置顺序决定了切面的执行顺序,多个切面执行的过程,类似于方法调用的过程,在环绕通知的proceed()执行时,去执行下一个切面或如果没有下一个切面执行目标方法,从而达成了如下的执行过程:(目标方法只会执行一次)责任链设计模式:为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求。spring项目中可能会用aop来完成日志、事务等功能,当存在多个aop切面时,这些切面的执行顺序是怎么样的?注解的value属性指定各个切面的执行顺序,value值默认为Integer的最大值,

2024-03-18 14:15:07 1892

原创 java8 在线API 中文版&英文版

java8API

2024-02-26 09:36:57 634

原创 Springboot中自定义拦截器

logger . info("====拦截到了方法:{},在该方法执行之前执行====" , methodName);// 1、白名单 String ipAddress = CusAccessObjectUtil . getIpAddress(request);if(!} // 2、校验header中的时间戳,时差不超过5分钟 String timestamp = "";try {

2024-02-18 20:07:58 497 1

原创 搜索技巧总结

视频下载。

2023-11-12 16:53:32 86

转载 域名级别的划分

有些人会说 baidu.com, zhihu.com, qq.com是一级域名,虽然是错误的-但可以理解(说的人多了也就是对的了……◇ 按组织性质划分:.org(表示非盈利组织)、.net(代表网络提供商)、.com(代表商业机构)、.edu、.gov、.cc等。◇ 按国家地区划分:.cn(中国)、.tw(中国台湾)、.hk(中国香港)、.ru(俄罗斯)、.de(德国)。注:在有些资料中,baidu.com, zhihu.com, qq.com的二级域名分别为 baidu, zhihu, qq。

2023-09-21 11:00:45 529

原创 log4j2配置文件的加载顺序

所有可用格式在功能上都是等效的。然而,Log4j 配置的分层性质可以通过自然支持嵌套的格式更好地捕获,因此 XML、JSON 和 YAML 文件通常更易于使用。的优先级最高,值为 8,其次是 yaml、json 和 xml。文件 那么默认先加载。,而不是log4j2.xml。文件 那么先加载。格式编写的配置文件。

2023-08-21 15:48:34 714

原创 Idea Live Template 功能总结

下图分别定义 快捷编码,描述,模板,应用范围这里将无参公共方法快捷编码定义为: pmn描述为: public method without param/**定义应用范围,这里勾选Java编码:log描述:定义日志常量。

2023-08-13 00:06:50 1295 1

原创 SpringBoot汇总

链接:https://blog.csdn.net/qq_40419080/article/details/130947548链接:https://blog.csdn.net/qq_40419080/article/details/130948105链接:https://www.cnblogs.com/lvhouhou/p/13439764.html链接:https://blog.csdn.net/qq_40419080/article/details/128019048链接:https://blog.csd

2023-08-12 13:34:32 504

原创 Mac使用技巧记录

【代码】Mac使用技巧记录。

2023-07-31 20:32:15 631

原创 解决 mybatis:Cause: java.lang.IllegalArgumentException: No enum constant com.xxxEnum

内置枚举转换器首先在MyBatis有两个内置枚举转换器 EnumTypeHandler 和 EnumOrdinalTypeHandler// mybatis 中默认的枚举转换器,是获取枚举中的 name 属性。// mybatis 中默认的枚举转换器,是获取枚举中的 name 属性。// mybatis 中默认的枚举转换器,是获取枚举中的 name 属性。// mybatis 中默认的枚举转换器,是获取枚举中的 name 属性。// mybatis 中默认的枚举转换器,是获取枚举中的 name 属性。

2023-07-31 20:00:28 1424

原创 EasyExcel实现excel文件的处理

EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。

2023-06-13 17:50:57 1182

原创 SQL使用的一些技巧

或者使用 case when。

2023-06-13 14:12:43 127

原创 Get请求如何传递数组、对象

我们知道@RequestParam可以通过value属性指定参数名,requ设置参数是否必须、设置参数默认值等。若接口参数是一个List< Object> 或者实体对象 需要@RequestBody注解,参数只能放在。Get请求一般用请求头来传递简单参数、但也可用Body传递对象,甚至可以一起使用。Params加入page、size参数。接口参数String [] 加。接口参数String [] 加。可以将数组参数传递多次,Body中加入数组对象。

2023-06-10 08:52:44 18215 3

原创 Example.Criteria的使用

里面的方法就是我们常用的增加查询条件的方法,比如 andTenderIdEqualTo(),andTenderIdIsNotNull等。这里的and 1=1只是为了criteria在设置时不为空,所以加了此值,否则mybatis拼接参数时报错。likeField就是前端传来的搜索条件,通过它来模糊查询项目名称,项目id,项目负责人名称。1、修改生成的XXXExample.java文件。这样我们通过这个方法就可以添加查询语句了。condition:查询的条件语句。field:操作的哪个字段。

2023-06-09 22:43:44 677

原创 Spring中一些方便的的接口和类

当一个类实现了这个接口之后,这个类就可以方便的获得ApplicationContext对象(spring上下文),Spring发现某个Bean实现了ApplicationContextAware接口,Spring容器会在创建该Bean之后,自动调用该Bean的setApplicationContext(参数)方法,调用该方法时,会将容器本身ApplicationContext对象作为参数传递给该方法。2、在任意地方注入bean,都会直接执行重写的afterPropertiesSet方法,不用主动调用。

2023-06-08 22:01:12 101

原创 深入理解java虚拟机-4高效并发

多任务处理在现代计算机操作系统中几乎已是一项必备的功能了。让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统的速度差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。而让计算机同时处理几项任务则是最容易想到,也被证明是非常有效的“压榨”处理器的运算能力的手段。除了充分利用计算机处理器的能力外,一个服务端要同时对多个客户端提供服务,则是另一个更具体的并发应用场景。

2023-06-08 21:53:02 1130

原创 数据加密介绍及工具类

【代码】加密工具类。

2023-06-03 14:55:17 159

原创 springboot项目启动后执行一段程序的方式

1.实现ApplicationRunner接口。

2023-05-30 14:40:29 95

原创 Spring Boot Devtools 开发热部署

设置自动编译(settings-compiler-make project automatically) ctrl+shift+alt+/(maintenance)在application.properties文件中配置spring.thymeleaf.cache=false来实现。勾选compiler.automake.allow.when.app.running。或spring.freemarker.cache=false。二、devtools可以实现页面热部署。

2023-05-30 14:38:43 85

原创 Spring Boot项目使用Spring Cache实现数据的缓存

通常情况下,使用内置的Spring Cache只适用于单体应用,因为这些缓存的对象是存储在内存中的。在大型分布式的系统中,缓存对象往往会非常大,这个时候我们就会有专门的缓存服务器(集群)来存储这些数据了,例如Redis。我们可以把一些经常查询的数据放到Redis中缓存起来,不用每次都查询数据库。这样也不用直接占用大量内存了。在Spring 3.1中,引入了对Cache的支持。

2023-05-30 14:05:07 67

原创 Mybatis generator

3)smallint:从 -2^15 (-32,768) 到 2^15 - 1 (32,767) (5位数字,65535)的整型数据,存储2 个字节。2)int:从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647)(10位数字,±21亿) 的整型数据。1)bigint:从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(19位数字),存储 8 个字节。

2023-05-28 10:08:31 998

原创 深入理解JAVA虚拟机——book

1.自动内存管理2.虚拟机执行子系统3.程序编译与代码优化4.高效并发

2023-05-18 16:56:04 17

原创 Java并发容器和框架

阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法。1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。2)支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。阻塞队列就是生产者用来存放元素、消费者用来获取元素的容器。在阻塞队列不可用时,这两个附加操作提供了4种处理方式,如表6-1所示。

2023-05-17 16:21:28 19

原创 Jmeter的使用

mac上启动Jmeter每次都需要打开终端、进入到JMeter的bin目录下,输入sh jmeter命令来启动。这里配置了线程组有100个线程,间隔1s周期发送,循环50次,所以一共会发送5000次。可通过聚焦搜索到jmeter的位置,再进入bin的终端。可以添加一个报表监控来查看线程组的访问。点击绿色三角运行后,可以查看到报表信息。mac上启动Jmeter。线程组内新建http请求。

2022-12-28 11:20:21 163

原创 Cloneable接口与浅克隆,深克隆

浅克隆,深克隆又称为浅拷贝、深拷贝。

2022-11-21 10:59:13 258

iTerm2 theme

iTerm2 theme

2023-08-05

可用于idea壁纸-大鲨鱼

可用于idea壁纸——大鲨鱼

2023-07-30

shiro框架的一些总结.XMind

shiro框架的一些总结.XMind

2023-07-30

java8新特性的总结.XMind

java8新特性总结.XMind

2023-07-30

设计模式脑图,待补充完整

设计模式脑图,待补充完整

2023-05-31

深入理解JAVA虚拟机.html

深入理解JAVA虚拟机.html

2023-05-25

空空如也

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

TA关注的人

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