自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 理解Java中wait/notify

理解wait/notify实现机制

2019-12-22 23:15:17 57

原创 美团leaf学习笔记

1.0 简介2.0 号段模式1.0 简介对于分布式ID生成策略,之前我的印象里只有twitter开源的snowflake算法,该算法详情参见:snowflake算法思考。后来看了美团技术博客中有写到美团开源了自己的分布式ID服务,还是很好奇,于是把代码拉下来看了一下,这里做一个简单的源码解读,后面也可以给自己一个参考,源码地址下面在最下面。同时,如果在看这篇源码解读博客前,建议还是把美团官方...

2019-12-15 23:22:04 321

原创 No bean named 'delegatingFilterProxy' available

这两天在跑一个spring mvc + spring session项目时发现应用启动时报了上面的那个错误,当然,我认为这个错误在spring security中应该也很常见,一般报错:"No bean named 'springSecurityFilterChains' available"。其实上面的错误都是由于DelegatingFilterProxy这个Filter引起的。下面我会简单...

2019-10-19 11:43:41 372

原创 SpringMVC源码系列(一)MVC初始化

SpringMVC如何将请求交给DispatcherServlet处理Spring MVC如何注册DispatcherServlet前面通过一篇文章讲过Spring MVC应用如何被Tomcat发现,在执行WebApplicationInitializer子类AbstractDispatcherServletInitializer#onStartup方法时,会调用registerDispat...

2019-08-02 15:42:40 95

原创 SpringMVC源码系列之自定义WebMvcConfigurer

Spring MVC中所有组件集中注册中心组件集中注册中心是什么意思?说白了就是如果使用纯注解的方式启动项目,那注册在xml中的组件就转移到WebMvcConfigurer类的实现上了。下面结合源码和实例一一解释,所有的组件的配置参见MvcConfig.java,详细源码见当前目录下spring-mvc模块那其中有哪些组件呢?路径匹配转换器PathMatchConfigurerCon...

2019-08-02 15:40:56 1279

原创 SpringMVC处理流程

SpringMVC处理流程Spring MVC架构图下图是我从Google上Copy了一份架构图,通过这份架构图,再一起来debug源码,这样能够更深刻的理解Spring MVC运作原理.Spring MVC启动时如何处理@Controller、@RequestMapping注解Spring启动时会扫描当前容器中所有Bean,实例化之前会执行InitializingBean#afterP...

2019-08-02 15:35:39 100

原创 SpringMVC之yaml数据交换格式实现

SpringMVC之yaml数据交换格式实现总所周知,spring mvc默认是支持json/xml数据交换格式的,那如果用yml做前后台数据交换又该怎样呢?接下来将一一介绍如何在Spring MVC中注册一个新的数据交换格式及应用。实现yaml消息转换器因为yaml在spring中没有对应的转换器,所以需要重新实现一个,源码参考YamlMessageConverter首先需要定义一个构...

2019-08-02 15:34:22 404

原创 IDEA中项目部署无任务异常抛出,且首页404

相信很多使用IDEA的用户都碰到题目说的情况,启动时控制台一切正常,浏览器首页显示404。这里我写了一个微型web项目参见spring/spring-mvc模块,采用全注解的方式,先创建一个artifact,然后"edit configuration" -> “add new ‘Tomcat Server’ configuration” -> ‘local’ -> …上面步骤...

2019-08-02 15:29:28 83

原创 SpringMVC源码之@EnableWebMvc注解工作原理

@EnableWebMvc注解工作原理篇查看spring源码发现该注解没有设置任何方法,也就是一个标识注解,spring官方文档是这样介绍的:Adding this annotation to an @Configuration class imports the Spring MVC configuration from WebMvcConfigurationSupport简单的说就是...

2019-08-02 15:26:31 72

原创 spring如何解决循环依赖

AbstractBeanFactory#doGetBean源码解析首先看AbstractBeanFactory中doGetBean方法,protected <T> T doGetBean( final String name, final Class<T> requiredType, final Object[] args, boolean typeCheckOn...

2019-08-02 15:23:25 82

原创 spring getBean源码解析

前言: 我们每次在执行spring getBean时,spring为我们做了什么事呢?这里从spring源码刨析spring解析过程。首先我们还是从spring给我们提供暴露在外的ApplicationContext入手,这里我使用的是`AnnotationConfigApplicationContext`,先来看看它的UML模型,我只截了ApplicationContext部分:这...

2019-07-22 13:45:22 88

原创 IntelliJ Idea运行Spring Boot项目报404错误

看了网上很多关于Spring Boot处理jsp时404错误,很不幸,没有一例解决了我的问题,最终通过传统的启动方式解决了,这里记录一下我的解决方案吧。问题先来看看我的pom.xml配置文件:<parent> <groupId>org.springframework.boot</groupId> <artifactId...

2019-06-24 15:55:09 1804

原创 Error:java: javacTask: source release 8 requires target release 1.8

今天在使用Idea跑代码时突然出现了下面错误,因为代码中使用了jdk 1.8功能:开始以为是我的模块语言级别设置小于1.8,于是在project structure中将jdk设置为1.8,如下:同时将project sdk设置为1.8。但是设置完后重新运行发现还是上面错误,同时发现target/classes目录下没有编译后的class文件。仔细看上面错误可以发现,Idea的javac能...

2019-06-19 22:29:47 2671

原创 Java中Fork/Join框架在什么时候使用合适?

什么是fork/join框架?

2019-06-15 11:53:24 417

原创 聊一聊java中的线程池

什么是线程池?线程池就是保存着一组工作线程的容器,每次任务来的时候会从容器里面拿出一个可用线程去执行任务。线程池的作用?线程池在执行大量异步任务时有些显著的性能提升,因为它减少了由于需要频繁的创建、删除线程导致的性能开销提供了一种资源可控的方式来保障系统稳定性获取到一些线程池的基础状态数据,如已完成的任务个数资源可控 vs 稳定性?为什么资源可控和系统稳定性能牵扯到一起呢?这里举...

2019-06-14 17:00:59 59

原创 手写迷你版HashMap

最近看了一些面试题,感觉网上好像有挺多公司比较喜欢让面试者手写HashMap,说实话理解JDK HashMap源码还是很需要时间的。打开看了一下HashMap源代码,将近2400行代码,前两位作者乃大名鼎鼎Doug Lea、Josh Bloch,普通人确实无法匹及。好了,废话不多说了,今天写了一个迷你版HashMap,只包含put、get方法,当然这两个方法应该是HashMap中使用...

2019-06-12 10:39:07 138

原创 Mac pip confirming SSL certificate

好久没有使用mac写python代码了,今天打算写一个apscheduler例子,发现机器上并没有装该包,然后通过pip3下载发现报了如下错误:Collecting apscheduler Could not fetch URL https://pypi.python.org/simple/apscheduler/: There was a problem confirming the...

2019-04-16 23:02:47 97

原创 leetcode算法之两数相加

题目描述:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -...

2019-03-19 10:09:51 66

原创 ERROR 1025 (HY000): Error on rename of '.\test\#sql-c68_10' to '.\test\member' (errno: 150)

将member表id键改为bigint:alter table member modify column id BIGINT;执行时发现如下错误:ERROR 1025 (HY000): Error on rename of '.\test\#sql-c68_10' to '.\test\member' (errno: 150)原因:member表的id主键字段是另外一张addr

2017-08-13 11:00:28 6602

原创 同步EventBus真的需要在每个注册监听方法中处理使用try/catch吗

之前听同事说在使用EventBus时为了防止eventbus在某一个监听者执行事件失败抛出异常导致其它监听者无法执行,必须使用try/catch显式捕获异常。但是今天在看源码时发现这样的说法是有问题的:eventbus不会因为某一个订阅者发生异常而终止后续订阅者的事件监听。下面是一段demo:public class EventBusTest { private static At

2017-08-08 23:53:39 1227

原创 Java运行时改变注解值

可能有人会问为什么要在运行是改变注解值?有什么应用场景?场景:士兵表: 士兵日志表: 这里我用的是mysql,在公司开发用的是mysql,对每个主键都使用了sequence。从上面的字段可以看出,士兵日志表就是一个id字段+veteran对象,定义日志这个bean时如下:Veteran{ @ColumnAnnotation(fieldName="id", sequence="ve

2017-07-26 00:17:13 7640 2

原创 Ajax请求servlet成功但返回错误

今天刚刚开完年会回来,喝的有点多,但是丝毫不影响我对今日碰到问题的总结。问题是这样的:我在一个html页面中通过点击一个按钮,请求发送到servlet中,从servlet的输出情况可以确定参数已经传送过来了,但是ajax返回一直错误。 解决方法:如果你的按钮写法是这样的 <input type="submit" value="提交"> ,那么将type改为button就好。 如果input ty

2017-01-23 22:05:13 3182 1

原创 Tomcat中Error copying file to /usr/share/tomcat7/backup/catalina.policy: /usr/share/tomcat7/backup/ca

今天碰到一个问题,在使用eclipse时,明明里面已经配了一个tomcat并且启动了该tomcat,发现功能文件可以在浏览器中正常访问,但是当我输入“http://localhost:8080“结果显示为404,我的第一反应是:webapps目录下的root文件应该是被删了,但是后来发现他们都在tomcat的安装目录下,那么应该就是eclipse有自己的部署文件位置。后来双击tomcat服务器进入O

2017-01-22 22:44:38 3497

原创 观察者模式高级应用--自定义Swing事件监听器

先抛出问题: 因为之前看到的实现很复杂,通过先将面板B中数据发送到服务器,服务器校验完成后然后存储,然后通过ActiveMQ将消息发布到所有的客户端,告诉他们有了新的数据。terrible! 现在就看这个问题的简单实现需求:直接将填完的面板B已经填完的数据回传到面板A,这里就会用到观察者模式。 之前有学习过观察者模式,但是说实话与其一遍又一遍的看那些hello world教程去理解什么是观

2017-01-21 09:37:17 2136

原创 Java Swing TextField对用户输入数据进行格式化处理

今天看到一个特殊的业务处理场景,我们知道一般TextField用户输入时字符串都没有分开,那么如果有人告诉你要写成这种格式怎么办? 这个时候我相信很多人第一反应就是“不知所措“,这个从哪里下手,有些人就是拒绝需求,不做更改,还有人会说我就会web上这种字符串处理,说再说最后都是逃不了manager的一句话。好了,废话就说这么多吧,切入正题。首先你要又一个用户输入内容侦听的一个东西,这里就是Do

2017-01-12 00:49:28 3336

原创 Python面向对象

说实话,不知道取个什么名字好些,这篇博客的名字太大了,因为接下来我并不是讲解太多面向对象东西。还有就是我在网上看到了好几篇很基础也很全面的面向对象博客,所以我这里并不想要造轮子。只是我觉得《Python3程序开发指南》这本书上关于面向对象的讲解还是挺值得回味的,也并不是那么好理解,至少我觉得译者的翻译不是那么直白易懂,所以这里做一些笔记和要点,也是对网上关于面向对象讲解的补充吧。 首先,为什么要学

2017-01-09 22:22:40 287

原创 java swing canvas小结

之前在学习canvas时总是感觉自己应该是会了,还能写一些小的画图程序,基本原理不就是一个repaint、update(还不是由自己来吊用)、paint,在监听器中调用repaint方法就可以画图了嘛,但是真的有很多细节要注意的,总结两点:Canvas是一个component组件,那么在它的方法监听中要canvas.repaint() 而不能这么写repaint()在画直线的时候一定要记得时刻

2016-12-26 22:53:41 6851 1

转载 Java内存回收机制

JVM的垃圾回收采用有向图方式来管理内存中对象,因此可以很方便地解决循环引用的问题,只要从有向图的起始顶点不可到达它们,垃圾回收机制就会回收它们。采用有向图来管理内存具有较高的精度,但缺点是效率较低。当一个对象在堆内存中运行时,根据有向图中的状态,分为三种情况:1、可达状态:对象被创建,有一个以上的引用变量引用它,在有向图中可从起始顶点导航到该对象,它就处于可达状态。2、可

2016-11-28 10:14:55 213

原创 org.hibernate.PropertyValueException: not-null property references a null or transient value : xxx

今天本来时准备在mysql控制台中写一个一对一关联,外键放在连接表中,但是突然没有头绪到底该怎么写这样的表,于是借鉴hibernate高级“自动生成SQL语句”的方式看它是怎么写的,但是在做的过程中碰到了一个问题。

2016-11-27 15:17:36 7533

原创 ERROR 1215 (HY000): Cannot add foreign key constraint

mysql中在为一个char或者varchar类型数据列添加外键时,会发生上面所示的错误,这里我google了一下,感觉它们碰到的问题跟我这个说的有点不相干,尝试了多种方式后来才发现是:主表(table1)所对应关联的数据列必须为unique才可以。#指定主表dept列unique约束alter table table1 modify dept varchar(5) not null uniqu

2016-11-26 15:45:29 2366

原创 数据库的一些常见面试题及其答案详解

我先标明下面题目的转载地址:原题目地址, 还有就是我所使用的数据库是MySQL,但是SQL语法大部分相同,只有少部分与Oracle、SQL Server不同。之前因为面试中吃了很多SQL 语法的亏了,决定真的要把这个玩会了,之前确实一直因为使用的都是hibernate框架,对数据库原生SQL的操作太少了,所以现在对基本的查询方式特别陌生。看到这套题目之后我还是觉得挺好的,最好是自己亲自写,不会

2016-11-26 01:25:37 9007

原创 重新回到CSDN写博客了

自从工作以来就一直没写过博客,因为觉得在这个上面写博客我不能写的很随意,可能写出来的风格大家都不喜欢。但是这几天看了网上不少博客介绍JVM、线程等等,说的都超级好的,我才发现分享的精神最重要,其它都是浮云。因为确实这一路走过来,看了很多国内的博客写的好多都是重复的,并且有很多都写不到点子上,不能够真正的解决一个问题。所以大部分时间我都不用百度,看的都是Google上那些国外的博客,说实话更多的还是

2016-11-25 15:45:58 501

原创 如何从数据库中选出最热的十个检索词

这个是我今天面试碰到的一个面试题,不得不说面试官真的是别有用心,可惜当时我是把数据库忘的一干二净,回答的离他想要的想去甚远。还是回到问题上吧:如何在数据库中查处最热的十个词,给你一张检索记录表,里面有一‘query’列,其它的暂时记不起来了,但是这个问题就只需要关注这一列就好:这里我随意创建了一张数据表(仅做模拟),表结构如图所示:然后我在里面随便插入了几组数据,统计结果如下图

2016-11-25 15:38:47 740

原创 调试----程序员理解程序的必备核心技能

通过一个Redis的pub/sub模式简要介绍Eclipse对程序员理解代码的重要性。

2016-07-27 00:08:59 1343

原创 SSH整合之org.springframework.web.context.ContextLoaderListener not found问题

在用Eclipse创建一个SSH整合项目时我比较喜欢使用快速配置工具,不习惯将所需要的jar包放到lib目录下。之前在启动Tomcat时一直碰到org.springframework.web.context.ContextLoaderListener  not found时发现老是出现这个问题,解决办法很简单,将liberary中所有需要导入的jar包放到WEB-INF/lib目录下重新启动服务器

2016-07-18 16:38:11 1044

原创 清除nginx服务器网站缓存数据

公司网站上线之后后面老是出现一些小的bug,但是这些bug在vi上改了之后打开更改的网页却发现并没有更改,google了一下有些人说删除“/var/cache/nginx”文件夹,但是我找到了这个文件夹删了之后重启nginx还是没什么反应,后来在stackoverflow上看到有人评论说可以更改nginx.conf配置文件,将sendfile参数设置为off(它默认是开启状态),重启nginx,再

2016-07-11 18:27:12 18023

原创 Launching Spring application Address already in use

已经凌晨一点了,自从工作之后就很少写博客了,平时工作太忙了。之前对新浪的博客系统觉得太失望了,最后还是想了想在CSDN上写吧。好了废话不多说,今天就来简单的跟大家讲解一下Spring Boot下的Spring Data JPA开发中关于bind address has already in use问题,下面是错误链:java.lang.reflect.InvocationTargetExceptio

2016-04-29 00:18:45 615

原创 Spring中协调作用域不同的Bean

Spring中singleton作用域的Bean在程序的整个过程中只有因此初始化的机会,当然它的依赖关系也是在初始化阶段就确定下来,但是如果注入的依赖关系是一个prototype类型的Bean,那么该bean注入的时候肯定是“一次性注入”,也就是说prototype类型的bean的将会一直不变,但是这肯定是有违我们在定义scope="prototype"的初衷,那么这时该怎么办呢?"lookup-m

2015-10-24 06:33:15 678

原创 Java中一些常用的排序程序代码

插入排序:基于数组的表package Crabime;/*this program aims at sorting the program in quicksort method*/public class ArrayQuickSort{ private static int unsortedIndex; private static int location; priv

2015-10-21 19:45:56 417

原创 Spring中BeanCreationException异常::0formul unbound in pointcut

可能有些人在学习Spring AOP关于增强处理章节会碰到上面所说的异常,之前我在学习的时候经常会发生这样的异常,我以为是我的bean在写注解的时候写错了,@Component(name=”..”)是不是有问题,有重复的Bean才导致不能正常创建Bean,完整错误原因如下: org.springframework.beans.factory.BeanCreationException: Erro

2015-10-07 19:28:55 436

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