自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 spring request的处理过程

在spring项目中,一个request过来后,都经过了哪些步骤才到controller那里呢?下面直接亮出结论,有兴趣的可以继续往下读(当然了,只是粗略的记录,要想深刻理解,还需要自己一步步跟进去看)。1、经过servlet框架的filter2、进入FrameworkServlet#proces...

2018-03-05 22:21:59 1858 0

原创 javax的Valid注解对泛型失效

我们知道javax的@Valid注解的效果是递归下去的。比如有一个如下的Controller: request的结构分别如下: 那么QueryContractRequest的chainId字段上面的Min注解是会生效的。 但是,如果ApiBaseRequest的定义如...

2017-12-09 15:45:09 1983 9

原创 证书和SSL或TLS

本篇说明如下问题: 1、证书是啥,有哪些内容? 2、证书编码及格式? 3、证书如何用? 4、tomcat如何启用SSL? 5、keystore是什么keytool有何用? 1、什么是证书       一个证书包含(当前证书的公钥(私钥是单独存储的)、证书颁发者、证书使用者...

2017-12-09 15:30:20 414 0

原创 tomcat的日志文件权限与启动用户的权限不一致

现象: 用户work的文件权限(umask=0002)为 u=rwx,g=rwx,o=rx 但是tomcat的日志文件的权限却是: 为什么会不一样呢? 这是因为tomcat在启动(catalina.sh)时会重新设置UMASK,(其默认值为0027,根操作系统的默...

2017-12-09 15:15:01 3419 0

原创 Logback

解决两个问题: 1、日志文件先按日期分割,再按指定大小分割; 2、日志输出到catalina.out;   1、日志输出到catalina.out 在logback.xml里如下配置后就能输出到console里,   <?xml version="1.0&q...

2017-11-30 14:10:49 248 0

原创 Java日志框架

在java的众多开源项目中,有很多日志框架,如Commons-logging、Log4j、logback和JDK自带的logging。这些日志框架也有自己的接口,但是这些接口定义不统一,在项目开发时不容易相互切换。于是有了SLF4J。 可以看出SLF4J只是一个统一的定义,并未提供日志功能的实现...

2017-11-30 13:58:12 105 0

原创 Spring的component-scan

base-package   1、basePackages 扫描basePackage制定包(及其子包)下的类,以尝试创建bean。将带有@Repository,、@Service、@Controller和@Component的都创建一个bean。 注解@ComponentScan的basePac...

2017-11-30 13:36:37 172 0

原创 java项目相对路径问题

1、背景 在做开发时,经常遇到这样的情形: IDE、cmd、web容器,对于一个项目的主目录路径的获取方式总是不一样,而且跨os(如windows和linux)时更是如此,这样太影像编码了,因为总不能一个一个if else吧 ~囧~。 那么有没有办法解决呢? 2、解决方案:看需...

2017-11-30 13:21:39 406 0

原创 Spring自定义xml标签

1、总体思路: 1.1) 编写标签schema 1.2) 添加文件spring.schemas和spring.handlers(目录固定在classpath:/META-INF下,被依赖代码必须打成一个jar包) 1.3) 编写一堆handler。 2、详细说明 自定义的标签...

2017-11-30 13:13:50 1020 0

原创 javax注解适用范围

javax的各种注解分别适用于什么类型,有哪些边界条件呢?先汇总如下: DecimalMax 通过最大值指定取值范围 null是合法的 BigDecimal、BigInteger、CharSequence、byte、short、int、long、Byte、Short、Integ...

2017-11-30 11:47:51 639 0

原创 javax的NotBlank和Email注解失效

使用javax的NotBlan和Email注解,结果保类似错误 no validator could be found for constraint 'javax.validation.constraints.notblank' 原来是由于javax只提供了注解...

2017-11-30 11:40:45 4817 1

原创 idea部署项目com.intellij.javaee.oss.admin.jmx.JmxAdminException-未使用最新版本的war包

本篇解决这样的问题: 使用idea在本地部署项目,按照链接的方法添加LocalTomcat,结果报错误说”com.intellij.javaee.oss.admin.jmx.JmxAdminException  xxx1.0.0-SNAPSHOT.war”包找不到?而如果重新check代码...

2017-10-16 15:45:24 17767 0

原创 spring配置解析过程

1、到直接引用的jar包的META-INF/下查找文件spring.handlers和spring.schemas文件,并加载业务方自定义的namespace parser和bean definition parser。 spring的是ContextNamespaceHandler。 2...

2017-10-10 15:38:01 239 0

原创 spring-controller

1、@RequestBody && @ResponseBody http://www.jianshu.com/p/7097fea8ce3f http://snowolf.iteye.com/blog/1628861 应用场景: 1、适用于非键值对的情形,content-Type是a...

2017-10-10 15:33:38 170 0

原创 spring-aop

aop代理的实现是通过beanPostProcessor来实现的,标签被解析成一个类型是AnnotationAwareAspectJAutoProxyCreator的bean,这个bean就是一个beanPostProcessor(见AbstractAutoProxyCreator#wrapIfN...

2017-10-10 15:20:02 120 0

原创 tomcat远程debug

本地idea 远端服务器(必须是tomcat)(事先配置按下面的配置好,否则要重启的): http://flyer2010.iteye.com/blog/658506 1)linux系统: 修改bin/catalina.sh 添加一条语句即可,如下: dec...

2017-10-10 15:08:46 113 0

原创 spring properties

1、取一个配置值,分割成list @Value("#{'${image.product}'.split(',')}") private List imageProducts; 2、获取配置文件里的所有key 除非自己定义一...

2017-10-10 15:03:15 141 0

原创 HTTP请求客户端

Http请求的客户端(在java里)目前有两种,java.net.HttpURLConnection和org.apache.http.client.HttpClient。 java.net.HttpURLConnection 这是java自带的http请求工具类。 HttpURL...

2017-10-10 14:59:41 1064 0

原创 java-mysql-mybatis日期类型

本篇包含以下内容: MYSQL的五种时间类型java、mybatis、mysql类型对应关系 1、MYSQL的五种时间类型 (参考http://blog.csdn.net/nich002/article/details/8950065) DATETIME 8B ...

2017-10-10 14:53:34 966 0

原创 HTTP-POST数据

本篇主要涵盖 HTTP-POST数据的四种格式;HTTP-POST数据时一些常见的坑。 HTTP-POST数据的四种格式可参见http://blog.csdn.net/a236209186/article/details/51736886 HTTP读取参数和header时踩过的坑: 有...

2017-10-10 14:34:20 223 0

原创 linux下mysql安装相关

主要内容: 安装、卸载和配置mysql配置和管理msyql终端启动mysql和停止mysql检查mysql进程是否开启登陆和退出忘记root密码的解决方案查看数据库、表、列、存储过程等信息命令——Show创建用户、赋访问权限、修改密码数据定义、数据操作语句数据的备份与恢复外部IP无法访问...

2017-03-19 21:59:12 211 0

原创 linux 安装JDK

这里以Ubuntu12.04安装JDK8来加以说明。 首先从官网下载linux版的JDK8: http://www.oracle.com/technetwork/java/javase/downloads/server-jre8-downloads-2133154.html 然后,将下载...

2017-03-19 21:50:21 167 0

原创 Spring的bean创建顺序

解答以下疑惑:Spring配置文件里bean,究竟是按什么样的顺序加载呢?Spring项目在部署时,究竟创建了多少各beanFactory呢?按什么顺序创建?长话短说,总结成如下几点:Rule1:首先读取WEB-INF/web.xml文件,该文件内一般会配置spring-config和spring...

2017-03-19 20:28:21 11339 0

原创 JAVA HttpClient使用

为达到以下目的: 要发送的参数json和platformKey, 以post方式传送,对参数进行Encode,只针对参数的值进行encode,否则解析不了; 引用的包 import java.io.BufferedReader; import java.io.File; import j...

2017-03-19 20:07:32 216 0

原创 Spring AOP demo 和获取被CGLIB代理的对象

本文分为两部分:1)给出Spring AOP的一个例子(会使用CGLIB代理);2)给出获取被CGLIB代理的原始对象。 1、Spring AOP Demo 这部分参考了博文(http://www.voidcn.com/blog/daguanjia11/article/p-4628090.ht...

2017-02-16 22:55:00 5266 0

转载 mac下安装wget命令

本文参考http://www.hollischuang.com/archives/548 执行下述命令可在mac上安装wget命令。 curl -O http://ftp.gnu.org/gnu/wget/wget-1.13.4.tar.gz tar xzvf wget-1.13.4.tar...

2017-02-15 19:06:50 1581 0

原创 curl常用功能

本文介绍curl的: 1)参数被截断; 2)自动转义编码; 3)如何发GET和POST; 参数被截断 若欲发送:curl http://host:port/test?a=1&b=2 curl会将其作为两条命令发送,此时需要对参数分割符&进行转义,即改为 curl http://...

2017-02-12 01:54:27 409 0

原创 linux机器之间互传文件

可以使用scp等命令来拷贝。也可以通过HTTP服务来实现。具体就是,机器A开启一个HTTP服务,机器B发出请求从而获取到文件。 假设在机器A上的当前目录为/home/work,目录结构如下(有个子目录subDir) -   -test1.txt   -subDir       -test2.txt...

2017-02-12 00:31:45 444 0

翻译 Mysql多列索引——最左精确匹配

若mysql的一张表上有一个多列索引,那么在编写where条件时,究竟哪些真正起到作用了呢? 本文参考(http://blog.codinglabs.org/articles/theory-of-mysql-index.html) 假设有如下的一张表: DROP TABLE IF EXISTS t...

2017-02-04 19:41:09 3141 0

原创 Mysql使用多列索引查询

在mysql中,如果使用多列索引进行查询,那么命中的记录是按插入的顺序还是按key的顺序返回呢? 这个问题在不同的存储引擎下,结果是不一样的,这里仅介绍InnoDB下的情形(按key的顺序返回)。 在InnoDB存储引擎下,索引分为聚集索引(对主键)和辅助索引两类(参见http://blog.co...

2017-02-04 19:14:08 2297 0

原创 java 注解的实例化

这里介绍诸如@Override、@Test的注解是如何实现(实例化)的? 其实注解是一个被final修饰、继承Annotation的interface。 不过既然是interface,那么就不能直接实例化,但是却可以通过getAnnotation(Class)方法取得注解对象,这说明开发人员或内置...

2017-01-28 22:17:03 4206 0

原创 mvn 阶段被执行几次

对于命令: mvn -e -U clean compile package install deploy 其中,compile截断究竟被执行几次呢? 实际上是compile被执行4次,package被执行3次,install被执行2次,deploy被执行一次。之所以这样,是跟maven的生命...

2017-01-28 21:51:00 304 0

原创 maven 父子模块

父子模块的pom文件里会涉及dependencies、dependecyManagement、packaging元素。 packaging元素 父模块里的packaging必须是pom。子模块一般是jar,但也可以是pom,此时子模块仅包含一些依赖,没有代码,或者也是父模块。 dependen...

2017-01-28 21:24:42 2676 0

原创 JAVA-AbstractQueuedSynchronizer

Java的AbstractQueuedSynchronizer的lock动作,其实是通过CAS操作去修改一个int型整数,该整数表示一个状态,不同的子类对状态的含义可以有不同的解释。 而挂起自己则是通过Unsafe类的park()方法(不是Object的wait()哦)来实现,该方法是一个nati...

2017-01-01 16:47:01 237 0

翻译 maven项目打包

现欲将项目源码打成可执行jar包,但不将(resources)资源文件打入jar包,而是在jar包中指定classpath,那么如何编写POM文件呢? 项目的结构是: -src -main +java +sources +webapp +test 现需要打成一个可执行的jar包,运行时的结构如下:...

2016-12-31 15:37:04 166 0

原创 mybatis插件原理

mybatis的插件原理可参考博文,http://blog.csdn.net/hupanfeng/article/details/9247379,本文可作为补充。 1、mybatis的自定义插件,需要实现Interceptor接口,里面有三个接口: Object intercept(Invoca...

2016-12-31 14:42:57 444 0

原创 maven pom文件样例

本篇给出maven3的pom文件样例。包括: 项目打包方式;项目如何打成可执行jar包;如何预定义一些常量,如版本号;生成站点(site),如生成javadoc文件;如何自定义项目源代码的主目录;如何自定义项目测试代码的主目录;如何添加项目依赖的jar包,并指定依赖范围;如何添加可选依赖; 下...

2016-06-22 15:24:16 511 0

原创 maven 设置JAVA_HOME

在idea中编写maven的pom脚本,想为项目的主代码生成javadoc文件,结果却提示"JAVA_HOME"变量设置不正确,具体提示如下: Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3...

2016-06-22 13:31:54 2361 0

原创 java 使用org.w3c.dom操作XML文件

本篇介绍在java中,如何使用org.w3c.dom中的相关内容来操作XML文件。包括: 如何在内存中构建XML文件并写入磁盘;如何从磁盘读取XML文件到内存;如何添加注释,读取注释;如何添加属性,读取属性;如何添加子元素,读取子元素; 也可以参考如下连接: http://w...

2016-06-17 10:00:15 6428 0

原创 shell 脚本样例

怎么写shell脚本呢,书上描述的挺容易,真正上手的时候一堆问题就来了,包括:shell获取脚本名shell获取传进脚本的所有参数shell的if elif怎么编写shell的for循环怎么写,包括数值运算shell的while循环怎么写shell的数组怎么定义,元素如何赋值,如何获取元素个数sh...

2016-06-16 16:37:20 307 0

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