- 博客(96)
- 资源 (31)
- 收藏
- 关注
原创 面试常问,缓存三大问题及解决方案
缓存来由随着互联网系统发展的逐步完善,提高系统的qps,目前的绝大部分系统都增加了缓存机制从而避免请求过多的直接与数据库操作从而造成系统瓶颈,极大的提升了用户体验和系统稳定性。缓存问题虽然使用缓存给系统带来了一定的质的提升,但同时也带来了一些需要注意的问题。2.1 缓存穿透缓存穿透是指查询一个一定不存在的数据,因为缓存中也无该数据的信息,则会直接去数据库层进行查询,从系统层面来看...
2019-01-30 11:57:13
423
原创 MyBatis中使用Collection嵌套查询
当使用 MyBatis 进行查询的时候如果一个 JavaBean 中包含另一个 JavaBean 或者 Collection 时,可以通过 MyBatis 的嵌套查询来获取需要的结果;以下以用户登录时的角色和菜单直接的关系为例使用嵌套查询JavaBeanRoleModelpublic class RoleModel { private Integer id; private...
2018-12-19 19:21:13
915
原创 Maven 中archetype说明
新建Maven project项目时,需要选择archetype。那么,什么是archetype?archetype的意思就是模板原型的意思,原型是一个Maven项目模板工具包。一个原型被定义为从其中相同类型的所有其它事情是由一个原始图案或模型。名称配合,因为我们正在努力提供一种系统,该系统提供了一种生成Maven项目的一致的手段。原型将帮助作者为用户创建Maven项目模板,并为用户提供了手段...
2018-12-18 09:34:33
830
原创 keystore格式与pfx格式证书互转
今天运维同事在阿里云上申请了pfx格式的SSL证书,但是tomcat只能识别keystore格式的,所以需要转换一下。按照下面的代码转换,需要注意的是KEYSTORE_PASSWORD这里的密码不是随便弄的,是生成pfx证书的时候会同时生成一个密码,,然后就使用这个密码。。。package com.cloud.frame.common.util;import java.io.FileIn...
2018-12-13 14:00:11
4926
1
原创 JVM指令集大全
看字节码从这里开始。指令码 助记符 说明0×00 nop 什么都不做0×01 aconst_null 将null推送至栈顶0×02 iconst_m1 将int型-1推送至栈顶0×03 iconst_0 将int型0推送至栈顶0×04 iconst_1 将int型1推送至栈顶0×05 iconst_2 将int型2推送至栈顶0×06 iconst_3 将int型3推送至栈顶0×0...
2018-12-11 17:34:12
2007
1
原创 Git会滚到某个历史版本
回退命令:$ git reset --hard HEAD^ 回退到上个版本$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前$ git reset --hard commit_id 退到/进到 指定commit的sha码强推到远程:$ git push origin HEAD --force...
2018-10-24 18:37:51
393
原创 transient的用途及使用方法
1,transient的用途及使用方法1,用途我们知道,当一个对象实现了Serilizable接口,这个对象就可以被序列化,我们不关心其内在的原理,只需要了解这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。而在开发过程中,我们可能要求:当对象被序列化时(写入字节序列到目标文件)时,有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(...
2018-10-03 18:05:44
507
原创 Maven pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0...
2018-06-29 11:04:33
242
原创 ConcurrentHashMap 源码分析
前言 HashMap是我们平时开发过程中用的比较多的集合,但它是非线程安全的,在涉及到多线程并发的情况,进行put操作有可能会引起死循环,导致CPU利用率接近100%。final HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;(2); for (int i = 0; i &lt; 10000;...
2018-05-13 16:46:45
247
原创 使用Druid监控项目的sql和service
本文提要前文也提到过druid不仅仅是一个连接池技术,因此在将整合druid到项目中后,这一篇文章将去介绍druid的其他特性和功能,作为一个辅助工具帮助提升项目的性能,本文的重点就是两个字:监控。 我的github地址点这里druid监控因为已经做了整合,所以这一步较为简单,只需要在web.xml中做一下简单的Servlet配置即可。<!-- 配置Druid监控 ...
2018-04-25 11:41:52
646
原创 Java中Static关键字用法总结
Java中的Static关键字用的很多,但是总结起来,大概有:Static member、Static Block、Static import三部分内容。下面分别介绍Static Entry Static实体包括静态变量、静态方法、静态内部类。首先理解一下Static这个词,在Java中,这个词的意思是这些实体归类所有,与类绑定在一起,所有该类的实例共享这些实体。例如同一个厂商生产的自行...
2018-03-24 10:17:47
408
原创 MyBatis动态SQL大全
一、什么是动态SQLMyBatis的动态SQL是基于OGNL的表达式的。它对SQL语句进行灵活的操作,通过表达式判断来实现对SQL的灵活拼接、组装。二、动态SQL介绍下面是用于实现动态SQL的主要元素:if choose(when,otherwise) trim where set foreach(1)、if元素 在动态SQL中所作的最通用的事情就是包含部分wher...
2018-03-21 13:48:45
4062
原创 如何在Eclipse中彻底修改一个项目名称
在实际工作中,有时候为了赶时间,往往通过复制项目得到一个成型的框架。那么怎么才可以彻底修改项目名称呢?1、web.xml2、工作空间中找到当前项目下.project文件 3、工作空间中找到当前项目,打开.settings文件夹,找到org.eclipse.wst.common.component文件 如果是非maven的项目的话,上面几步就可以实现彻底修改名称了,但是如果是...
2018-03-09 16:41:04
53196
4
原创 如何通过js关闭微信浏览器页面
最近在项目开发中,有一个支付页面当用户支付成功的时候需要通过js主动关闭这个页面。这个在其他浏览器比较好实现直接用window对象中的api就可以如何通过js关闭微信浏览器页面 最近在项目开发中,有一个支付页面当用户支付成功的时候需要通过js主动关闭这个页面。这个在其他浏览器比较好实现直接用window对象中的api就可以。具体的代码:window.opener = null;win...
2018-03-09 16:24:32
19568
3
原创 解决maven多工程项目"找不到符号"问题
最近在做一个微服务的项目,一共多十多个maven项目,今天想把其中一个服务打成jar包,但是run as mvn clean install之后,出现了如下图的错误: 通常来说有一下三个原因: 1. 可能项目编码格式不统一。 2. 可能项目编码使用的JDK版本不统一。 3. pom依赖问题,这种依赖可能是没有添加包的依赖,如果是聚合项目可能是没有添加其他模块的依赖,或者是添加了其它...
2018-03-08 21:03:18
29068
3
原创 解决Eclipse Run as maven build控制台报错问题
右击pom.xml,run as maven build之后,出现如图所示:注意这两个地方不要写错,JRE一定要和Eclipse配置的install JRE保持一致,然后把Debug Output和Skip Tests勾选上之后点击 run。 如果还是不能运行的话,再试一下这个方法: 可以设一个环境变量MAVEN_HOME指向你的maven安装目录: MAVEN_HOME=D:\Ap...
2018-03-08 20:51:53
1359
原创 使用SecureCRT来上传下载Linux服务器文件
SecureCRT下的文件传输协议有以下几种:ASCII、Xmodem、Ymodem、ZmodemASCII:这是最快的传输协议,但只能传送文本文件。 Xmodem:这种古老的传输协议速度较慢,但由于使用了CRC错误侦测方法,传输的准确率可高达99.6%。 Ymodem:这是Xmodem的改良版,使用了1024位区段传送,速度比Xmodem要快 Zmodem:Zmodem采用了串流式(st
2018-03-08 20:29:11
661
原创 多种方法实现水平居中和垂直居中总结
水平居中和垂直居中在编写HTML5静态页面过程中经常遇到,现在就来总结一下对于不同的元素如何实现居中。一、水平居中: 1、对于行内元素,在父级块级元素css属性中使用 text-align:center即可。 2、对于width固定的块级元素,使用margin:20px auto; /* margin-left 与 margin-right 设置为 auto */ ...
2018-03-03 10:14:09
2752
原创 Java开发2018年值得学习的10大技术
作为一个开发人员,我们最大的挑战就是保持自己了解新的技术。技术变化很快,你大概每两年就会看到一个新版本的编程语言和框架。就拿2017年来说,AR、VR、区块链、人工智能等等已经扑面而来了。除了这些离我们较远的,说几个离我们最近的:JDK 9、 Spring 5、 Spring Security 5、 Spring Boot 2、ServiceMesh等。这一年对于一个Java开发来说可能是最忙
2018-02-07 16:18:36
8870
原创 在Java中用引号创建String对象和用构造函数的区别
创建一个String对象一般有以下两种方式:String str1 = "abcd"; String str2 = new String("abcd"); 这两种方式有什么区别呢?我们可以通过下面两个小例子来说明.Example 1:String a = "abcd"; String b = "abcd"; System.out.println(a == b)
2018-02-07 16:05:30
274
原创 Maven之setting.xml配置文件详解
setting.xml配置文件 maven的配置文件settings.xml存在于两个地方:1.安装的地方:${M2_HOME}/conf/settings.xml2.用户的目录:${user.home}/.m2/settings.xml前者又被叫做全局配置,对操作系统的所有使用者生效;后者被称为用户配置,只对当前操作系统的使用者生效。如果两者都存在,它们的内容将被合并,并且用户范围
2018-02-02 13:13:58
334
原创 SpringMVC通过HandlerMethodArgumentResolver自定义参数解析
今天新开发了一个项目,用来把公司其他服务调大数据接口都集中到这个新的服务中。请求参数都是加密的,因此请求参中有一些跟业务无关的数据,那么怎么能够实现只要和业务有关的数据呢? 其他服务传过来的数据是通过form形式保存在TranHead和TranBody中,其中TranBody中保存了加密之后的请求参数。 首先,通过拦截器,对加密的数据进行解密public class Int
2018-01-31 11:44:26
11569
1
原创 SpringMVC常见注解mvc interceptors mvc view controller mvc resources mapping的用法
mvc:interceptors mvc:view-controller mvc:resources mapping都是SpringMVC配置文件中常见的标签,今天就根据具体代码来详细介绍一下这两个标签的使用方法:一、mvc:interceptors用法1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors> ...
2018-01-30 17:11:20
1056
原创 Failed to read candidate component class: 的解决办法
今天从SVN导入一个新项目之后,启动之后出现了所下图所示的问题: 网上搜了一下是JDK版本高了,因为项目中使用的是Spring 3,而我本地安装的是JDK 8,因此产生了兼容性的问题。(spring 3兼容jdk 7, spring 4兼容jdk 8)然后如下图设置一下即可 问题解决。但是有一个地方需要注意一下: 如果上图java compiler改成了
2018-01-24 10:36:38
61968
3
转载 HTML5中 div section article标签的区别
近来,发现自己编码有个问题,对article,div,section有些乱用,索性就好好了解下他们的区别,写个文章,好好的科普一下……div:hello,大家好。我叫div,对应英文单词中的division,我是块级元素,就是在我里面的内容会自动开始新行,可以定义文档中的分区或节,把文档分割成独立,不同的部分,我参加的国际会议是这么介绍我的,“The div element has no...
2018-01-14 12:10:21
1116
1
原创 org.slf4j.impl.Log4jLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext
今天把服务部署到测试环境但是tomcat启动报错,报错内容如下图: org.slf4j.impl.Log4jLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext,从这句话字面可以看出Log4jLoggerFactory不可以强转成LoggerContext,也就是log4J和logback冲突了。程序cl
2018-01-05 17:58:55
11096
原创 SpringMVC源码分析
作为一名java程序员,SpringMVC大家应该都非常熟悉了,那么今天就来分析一下它的源码。主要从三方面来分析:DispatcherServlet的启动和初始化如何处理分发HTTP请求如何呈现视图**一. DispatcherServlet的启动和初始化** 首先,分析DispatcherServlet的初始化,我们知道SpringMVC的实现是基于IoC容器的,所以首先需要知道IoC容
2018-01-04 16:29:08
292
原创 取消Tomcat post长度限制的方法
Tomcat 默认的post参数的最大大小为2M, 当超过时将会出错,可以配置maxPostSize参数来改变大小。tomcat 6 及 以下版本tomcat 6maxPostSize="0" //0 表示不限制大小在tomcat文件夹下的conf文件中的server.xml 配置:tomcat 7 及 以上版本tomcat 7maxPostSize="-1" // -1
2017-12-20 18:07:53
655
原创 java中unicode utf-8以及汉字之间的转换工具类
1. 汉字字符串与unicode之间的转换1.1 stringToUnicode[java] view plain copy/** * 获取字符串的unicode编码 * 汉字“木”的Unicode 码点为Ox6728 * * @param s 木 * @return \uf
2017-12-20 17:58:18
1870
转载 分布式架构 -- 学习路线图(入门到进阶)
转载自:http://blog.youkuaiyun.com/chunlongyu/article/details/52431200由于分布式系统所涉及到的领域众多,知识庞杂,很多新人在最初往往找不到头绪,不知道从何处下手来一步步学习分布式架构。本文试图通过一个最简单的、常用的分布式系统,来阐述分布式系统中的一些基本问题。负载均衡分布式缓存分布式文件系统/CDN分布式RPC分布式数据库
2017-12-18 20:39:54
1658
原创 SOA、SOAP、RPC、REST、DUBBO的区别与联系
转载自http://blog.youkuaiyun.com/silencecarrot/article/details/524685211、SOASOA(面向服务的软件架构、Service Oriented Architecture),是一种软件设计模式,主要应用于不同应用组件之间通过某种协议来互操作。例如典型的 通信网络协议。因此SOA是独立于任何厂商、产品、技术的。
2017-12-18 20:38:16
1239
原创 使用FastJson在JSON字符串、JSON对象及JavaBean、Map之间的相互转换
fastJson对于json格式字符串的解析主要用到了一下三个类:JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。JSONObject:fastJson提供的json对象。JSONArray:fastJson提供json数组对象。我们可以把JSONObject当成一个Map来看,只是JSONObject提供了更为
2017-12-14 16:10:13
8798
原创 SpringIOC容器在Web项目中启动源码分析
IOC容器的启动过程就是建立上下文的过程,在http://blog.youkuaiyun.com/a18716374124/article/details/78685884 这篇文章中讲解了IoC容器启动最核心的部分,也就是非Web项目启动过程的源码分析。那么如果是Web项目,启动过程有时怎么样的呢?这篇文章就来看一下,Web项目中IoC容器启动过程,也就是上下文建立的过程。
2017-12-14 10:47:34
342
转载 Quartz实现定时任务
在我们进行软件项目开发的过程中,相信大家在很多时候都会遇到如下业务场景:每天、每周或每月生成相应的业务报表;每天统计系统注册人数;定期清理平台长久不登录的用户等等。遇到这种业务场景需要怎样去处理?人为定时去数据库操作来统计?别开玩笑了,这种事情哪用得着人来做,如果像这种任务还需要专人每天都去做统计,那估计很多人就要疯掉了。针对于这种业务情况,采用定时任务是个非常不错的选择。在Java领域中,定时任
2017-12-06 11:13:05
274
转载 SpringAOP源码解析
一、SpringAOP的概述 1、AOP概念 AOP是Aspect-Oriented Programming(面向切面编程)的简称。维基百科的解释如下: Aspect是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点(crosscutting concern)。从关注点中分离出横切关注点是面向切面的程序设计的核心。分离关注点使解决特定领域问题的代码从业务逻辑代码中独立出来
2017-12-05 15:41:12
304
转载 SpringIOC源码解析
一、 什么是Ioc/DI?二、 Spring IOC体系结构(1) BeanFactory(2) BeanDefinition三、 IoC容器的初始化1、 XmlBeanFactory(屌丝IOC)的整个流程2、 FileSystemXmlApplicationContext 的IOC容器流程1、高富帅IOC解剖2、 设置资源加载器和
2017-12-01 14:08:57
985
3
转载 Tomcat7源码分析
一、背景 Tomcat作为JavaWeb领域的Web容器,目前在我们淘宝也使用的也非常广泛,现在基本上所有线上业务系统都是部署在Tomcat上。为了对平时开发的Web系统有更深入的理解以及出于好奇心对我们写的Web系统是如何跑在Tomcat上的,于是仔细研究了下Tomcat的源码。大家都知道Servlet规范是Java领域中为服务端编程制定的规范,对于我们开发者只是关注了Se
2017-11-27 14:53:06
759
1
转载 使用Maven私服的好处
1、Maven仓库的分类 本地仓库:当Maven执行编译或测试时,如果需要使用到依赖文件,它总是基于坐标使用本地仓库的依赖文件。默认情况下,不管Linux还是Windows,每个用户在自己的用户目录下都有一个路径名为.m2/respository/的仓库目录。远程仓库:安装好Maven后,如果不执行任何Maven命令,本地仓库的目录是不存在的。当用户输入第
2017-11-21 14:26:58
3155
原创 JVM内存模型 & GC触发条件
JVM 内存区域JVM会将Java进程所管理的内存划分为若干不同的数据区域. 这些区域有各自的用途、创建/销毁时间:一. 线程私有区域线程私有数据区域生命周期与线程相同, 依赖用户线程的启动/结束而创建/销毁(在Hotspot VM内, 每个线程都与操作系统的本地线程直接映射, 因此这部分内存区域的存/否跟随本地线程的生/死).1. Program Counter Reg...
2017-11-21 11:06:45
684
转载 useBodyEncodingForURI="true"解决Tomcat乱码问题
之前在帮忙做一个项目的时候,用的是Eclipse+Tomcat,统一用的是UTF-8编码格式,发现从前台传入的中文参数到后台老是出现乱码(只有我才出现了错误,其他成员没有)。出现问题后检查Eclipse的编码设置后均没有问题,于是怀疑可能是Tomcat导致的问题。后来发现我的Tomcat和他们的不一样,换成他们用的Tomcat后乱码问题就没有了!我很纳闷,为什么会这样呢,我明明是从Apache官网
2017-11-15 15:22:13
2682
1
Navicat patch
2018-02-02
《Maven实战》完整高清版
2017-09-08
Java入门经典
2017-08-22
基于maven的SSM(spring+springmvc+mybatis)框架demo
2017-07-03
ubuntu系统下使用的DNW
2013-03-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人