
Java
桃花影落丶飞神剑
萧瑟秋风今又是,换了人间
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
优雅的controller层设计
优雅的controller层设计原创 2023-02-22 10:15:01 · 4876 阅读 · 5 评论 -
线程池知识点
newSingleThreadExecutor:创建一个单线程的线程池,此线程池保证所有任务的执行顺序按照任务的提交顺序执行。newFixedThreadPool:创建固定大小的线程池,每次提交一个任务就创建一个线程,直到线程达到线程池的最大大小。newCachedThreadPool:创建一个可缓存的线程池,此线程池不会对线程池大小做限制,线程池大小完全依赖于操作系统(或者说JVM)能够创建的最大线程大小。newScheduledThreadPool:创建一个大小无限的线程池,此线程池支持定时原创 2022-09-08 09:50:08 · 206 阅读 · 0 评论 -
DDD领域驱动模型笔记
1、传统MVC模式,service中处理对于业务,各个业务service做的事情都有很多相似部分,并且代码混乱,不容易理解,不便于修改DDD模式,按照业务功能进行划分领域,使得业务service中的代码在后续业务变更时代码不需要进行改变,整个业务流程也明朗清晰2、例如,抽象出来一个checkService借口,具体业务的check具体去实现checkService即可,业务service中永远只需要调用checkService的check方法即可,并且,后续的更新拓展也不需要修改业务代码,从而达到一个防原创 2022-09-06 10:10:32 · 373 阅读 · 0 评论 -
Spring Boot为什么改成了默认cglib动态代理
https://blog.youkuaiyun.com/weixin_41325595/article/details/103576207原创 2020-08-11 00:46:26 · 1653 阅读 · 0 评论 -
关于BIO、NIO、AIO的区别
BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。AIO(NIO.2):异步非阻塞式IO,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理。原创 2020-08-05 01:12:21 · 221 阅读 · 0 评论 -
多线程知识点
一、线程启动的两种方式1.、继承Thread类重写Thread的run方法,在run方法中进行操作,用start方法启动线程 2、继承Runnable接口,实现run方法,在run方法中进行操作,需要传入当前类的实例对象创建一个Thread实例,然后调用start方法启动线程...原创 2020-08-04 00:19:33 · 647 阅读 · 0 评论 -
加Lock锁和加Synchronized关键字的区别
1、lock加锁lock锁是实现了aqs原理的加锁方式,进入方法时,添加死循环结构,获取当前线程进行加锁,然后继续执行代码,后来的线程加锁失败就进入阻塞状态,加入队列中,队列数据结构,先进先出,当加锁的线程释放锁后,队列中最靠前的线程优先走出阻塞状态,然后进获取锁,继续执行代码。2、Synchronized关键字Synchronized关键字是基于JVM实现的加锁,是一种非安全锁,当方法结束时,方法外有多条线程等待时,具体执行那条线程是不确定的;...原创 2020-07-31 00:36:07 · 423 阅读 · 0 评论 -
hashmap加载因子为什么是0.75,为什么链表的长度达到8时会转成红黑树
1、为什么链表的长度达到8的时候要转成红黑树?2、加载因子为什么默认为0.75?3、为什么要求数组的长度是2的指数次幂?创建HashMap是,传入一个数组的长度,原创 2020-07-30 23:50:11 · 762 阅读 · 0 评论 -
JVM原理模型图
原创 2020-07-27 23:37:57 · 213 阅读 · 0 评论 -
springboot参数校验统一异常处理
1、当接受请求是需要对参数进行校验,首先我们接受json格式的参数,下面以用户注册功能为例:如果我们没有统一异常处理,则对不同方法的参数都需要处理通过测试,查看日志及返回值我们知道,当参数错误时,会抛出如下异常:所以我们统一异常处理就应该指定对该异常进行处理,首先我们定义的异常类要加上@ControllerAdvice注解,然后编写具体的异常处理方法,在该方法上添加@ExceptionHandler(MethodArgumentNotValidException.class)注解,这样该异常就会原创 2020-07-07 01:14:02 · 1249 阅读 · 1 评论 -
StringUtils中isEmpty和isBlank有什么区别?一起来看源码
1、StringUtils中isEmpty和isBlank都是用来判断字符串是否为空的,那么他们之间有什么区别呢?不多说,直接上源码根据StringUtils源码可见,相比sEmpty方法,isBlank还对空格进行了判断也就是说在只有空格的情况下,isEmpty为false,而isBlank依然为true...原创 2020-05-17 00:02:25 · 223 阅读 · 0 评论 -
Springboot获取一年的天数,避免在公历闰年时出现错误
1、不要在程序中写死一年为 365 天,避免在公历闰年时出现日期转换错误或程序逻辑错误。2020年有366天 // 获取今年的天数 int dayOfYear = LocalDate.now().lengthOfYear();2、获取指定年份的天数2019年有365天 // 获取指定年份的天数,例如:2019 int daysOf2019 = LocalDate.of(2019, 1, 1).lengthOfYear();...原创 2020-05-13 01:07:00 · 392 阅读 · 0 评论 -
SpringBoot启动时报错:Error creating bean with name 'dataSource' defined in class..........
如果pom.xml中没有配置mybatis的依赖,出现这个错误那么Spring boot启动时会默认加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration类加载时使用@Configuration注解向spring注入dataSource bean,如果项目中没有关于dataSource的配置信息,那么...原创 2020-01-09 21:31:25 · 11224 阅读 · 2 评论 -
springboot获取访问的ip、method、url等数据
1、先掉用"RequestContextHolder"获取"requesAttribute"ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();2、再调用"getRequest()"HttpServletRequ...原创 2020-01-05 22:04:22 · 4145 阅读 · 0 评论