
java
文章平均质量分 58
笨鸟先飞的菜鸟
下一个目标走进阿里
展开
-
使用IDEA工具debug java annotation processors
使用IDEA工具debug java annotation processors原创 2023-07-14 00:27:41 · 1514 阅读 · 0 评论 -
Java应用编写Junit测试使用Maven编译时没有执行单元测试
TDD开发maven构建时单元测试不执行原创 2022-06-01 00:11:05 · 1083 阅读 · 0 评论 -
Mac生成core文件提示Failed to write core dump
最近在看《深入理解Java虚拟机》验证书中的Java对内存OOM异常示例, 出现OOM异常后core文件为空,看控制台日志如下:# A fatal error has been detected by the Java Runtime Environment:## SIGSEGV (0xb) at pc=0x00000001085326c1, pid=17114, tid=19971## JRE version: Java(TM) SE Runtime Environment (8.0_91原创 2021-08-13 22:24:57 · 3374 阅读 · 0 评论 -
查看Java进程或其他类型进程的信息
有这样一种情形,当在一个jar包目录使用java -jar xxx.jar启动一个Java进程后,可以使用jps或者ps命令看到这个进程,但是不知道这个jar包所在的目录(假设这个进程不是你自己部署的),此时该如何才能找到这jar包所在的目录?示例如下:java -jar learn.jar使用ps命令查看进程信息:ps -ef | grep java | grep -v grep 501 34814 34514 0 11:04下午 ttys004 0:10.90 /u原创 2021-04-09 23:51:31 · 516 阅读 · 0 评论 -
几种控制Web应用中log4j日志输出相应级别的日志信息方式
这里讨论的是使用log4j1.x版本的情况。1、直接修改log4j.xml配置文件中对应logger的日志级别优点: 简单直接缺点: 需要重新启动应用2、使用org.springframework.web.util.Log4jConfigListener定时刷新常见web.xml中配置如下:<context-param> <param-name>log4jConfigLocation</param-name> <param.原创 2021-01-16 21:18:49 · 729 阅读 · 1 评论 -
使用PathVariable注解获取路径中的参数出现HTTP状态 400 - 错误的请求
参考地址:https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc源码地址:https://gitee.com/qinshizhang/spring-mvc-learn返回信息如下:<body><h1>HTTP状态 400 - 错误的请求</h1><hr class="line"/><p><b>类型</b>原创 2021-01-01 23:29:10 · 3005 阅读 · 0 评论 -
使用RequestBody注解传递POJO对象时返回HTTP状态码415 - 不支持的媒体类型
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver#readWithMessageConverters(org.springframework.http.HttpInputMessage, org.springframework.core.MethodParameter, java.lang.reflect.Type)HttpMessage...原创 2021-01-01 15:42:42 · 1904 阅读 · 3 评论 -
No converter found for return value of type: class xxx(自定义的class对象)
先贴一份异常信息:org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class org.jackson.mvc.web.po.RequestInfo org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProce原创 2021-01-01 03:46:05 · 806 阅读 · 0 评论 -
Java SPI的简单使用
SPI的全称是Service Provider Interface,起初数提供给厂商做插件开发的。关于Java SPI的详细定义和说明,可查看官网说明。Java SPI使用了策略模式,一个接口多种实现。其只定义接口,具体的实现并不在程序中直接确定,而是由程序之外的配置掌控,用于具体实现的装配。具体的步骤如下:定义一个接口以及对应的方法。 编写该接口的一个实现类。 在META-INF/services/目录下,创建一个以接口全路径命名的文件,如com.jackson.dubbo.spi.Print原创 2020-12-27 00:15:15 · 734 阅读 · 0 评论 -
SpringBoot基于注解方式配置Filter
Filter在Web应用中是一个很常见的组件,在Spring应用中Filter的创建方式有最简单和常用的方式有两种(可能还有其他,若有其他优秀的创建方式,欢迎交流学习):实现javax.servlet.Filter接口 继承org.springframework.web.filter.OncePerRequestFilter类在传统Web应用中,每个Web应用都有一个web.xml文件,方便我们配置各种Servlet、Filter、Listener等。在SpringBoot应用中大多推崇零XML配置原创 2020-12-26 02:11:39 · 1470 阅读 · 0 评论 -
SpringBoot启动一个Web应用后访问默认的index.jsp页面后,变成下载jsp页面问题
初始依赖如下:<?xml version="1.0" encoding="UTF-8"?><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/xsd/maven-4.原创 2020-07-31 00:11:03 · 1863 阅读 · 0 评论 -
unknown command property: execution.isolation.thread.timeoutInMillisSeconds
在使用Spring Cloud hystrix是遇到如下错误信息。java.lang.IllegalArgumentException: unknown command property: execution.isolation.thread.timeoutInMillisSeconds at com.netflix.hystrix.contrib.javanica.conf.HystrixPropertiesManager.initializeProperties(HystrixProperti.原创 2020-07-21 00:56:50 · 1507 阅读 · 6 评论 -
使用Spring Cloud配置服务器控制配置
在应用开发的过程中,许多开发人员会在应用程序中使用一个或多个常量类文件来将所有的配置集中在一个地方。将应用程序配置数据直接写入代码中通常是有问题的,因为每次对配置镜像更改时,应用程序都必须重新编译和重新部署。而使用配置文件将配置信息与应用程序代码进行分离,这样可以很容易在不进行重新编译的情况下对配置进行更改,且修改后重启应用即可使修改后的配置生效。在开发时往往会采用YAML、JSON、XML或Properties等文件来存储应用的配置信息。这些属性文件存放在服务器上,通常包含数据库和中间价信息,以及驱动原创 2020-07-17 01:15:38 · 511 阅读 · 0 评论 -
Spring Cloud Zuul网关调用服务出现ConnectTimeoutException: Connect to ip:port [/ip] failed: connect timed out
在学习使用Spring Cloud Zuul实现服务网关时,调用服务出现如下异常:Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to 192.168.1.102:8081 [/192.168.1.102] failed: connect timed out at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(D原创 2020-07-09 01:13:35 · 4200 阅读 · 1 评论 -
SpringBoot整合Eureka时启动报错:No qualifying bean of type javax.servlet.Filter available
关键日志如下:Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:No qualifying bean of type 'javax.servlet.Filter' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations:{@org.springframewor原创 2020-06-25 11:18:34 · 1558 阅读 · 0 评论 -
使用Docker构建opjdk和tomcat镜像
一、构建opjkd镜像1.1 下载openjdk,传送门:http://jdk.java.net/我使用的的opjdk8,如下所示:1.2创建opjkd目录,将下载的包放到改目录下,创建Dockerfile文件,目录结构如下:1.3 编写Dockerfile文件FROM centos:latestMAINTAINER lukans lukans@email.comADD openjdk-8u41-linux-x64.tar.gz /usr/local/javaEN.原创 2020-06-13 15:33:35 · 807 阅读 · 1 评论 -
单例模式
一、定义单例模式:确保一个类只有一个实例,并提供一个全局访问点。单例模式属于创建型模式。单例模式把某个类设计成自己管理的一个单独实例,同时也避免其他类再自行产生实例。要想要获取单例模式的实例,通过定义的单例类是唯一的途径。单例模式提供对这个实例的全局访问点,当你需要实例时,可以通过该访问点返回单个实例。单例模式的核心思想:私有化构造方法。即无法通过new关键字创建对象。 提供一个...原创 2020-04-06 00:11:31 · 118 阅读 · 0 评论 -
SpringBoot整合Mybaits开发报java.lang.IllegalArgumentException: At least one base package must be specifie
SpringBoot整合Mybaits开发报Caused by: java.lang.IllegalArgumentException: At least one base package must be specified异常,这里记录一下,加深自己的记忆。详细异常堆栈信息如下:java.lang.IllegalStateException: Failed to load Applicat...原创 2020-03-17 00:30:17 · 3419 阅读 · 0 评论 -
web.xml配置信息随记
这里是我看到的一篇写的比较好的文章:https://www.cnblogs.com/shoshana-kong/p/10682662.html转载 2020-03-11 21:03:01 · 118 阅读 · 0 评论 -
ibatis配置随记
ibatis与hibernate都是持久层的额技术框架,这里记录一下ibatis的简单配置,作为自己以后的参考。ibstis的配置主要由两种文件:(一)有关项目的总体配置,如连接的数据源,连接池,缓存等的配置,也即sqlmapconfig.xml文件的配置。(二)sqlmap.xml文件的配置,也即对象与表的操作映射的配置。一、sqlMapConfig.xml配置SqlMapCo...原创 2020-03-11 20:53:21 · 224 阅读 · 0 评论 -
Java学习之内部类(十)
注:本博客内容是本人在看《Jave编程思想》这本书时从该书上抄录下来的一些片段。这里也强烈建议各位读者去购买这本书进行阅读学习。可以将一个类的定义放在另一个类的定义内部,这就是内部类。内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可见性。然而必须要了解,内部类与组合是完全不同的概念,这一点很重要。在最初,内部类看起来就像是一种代码隐藏机制:将...原创 2019-12-19 01:22:23 · 216 阅读 · 0 评论 -
Java学习之接口(九)
注:本博客内容是本人在看《Jave编程思想》这本书时从该书上抄录下来的一些片段。这里也强烈建议各位读者去购买这本书进行阅读学习。接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。首先,先学习抽象类,它是普通类与接口之间的一种中庸之道。尽管在构建具有某种为实现方法的类时,你的第一想法可能就是创建接口,但是抽象类仍旧是用于此目的的一种重要而必须的工具。因为你不可能总是使用纯接口...原创 2019-12-14 00:10:35 · 339 阅读 · 0 评论 -
Java学习之多态(八)
注:本博客内容是本人在看《Jave编程思想》这本书时从该书上抄录下来的一些片段。这里也强烈建议各位读者去购买这本书进行阅读学习。在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本特征。多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还能够创建可扩展的程序——即无论在项目最初创建时还是在需要添加新的功能时都可以“生长”的程...原创 2019-12-10 23:21:48 · 284 阅读 · 0 评论 -
Java学习之复用类型(七)
注:本博客内容是本人在看《Jave编程思想》这本书时从该书上抄录下来的一些片段。这里也强烈建议各位读者去购买这本书进行阅读学习。复用代码是Java众多引人注目的功能之一。Java复用代码的诀窍在于使用类而不破坏现有程序代码。有两种可以达到一个目的的方法。第一种方法就非常直观,只需要在新的类中产生现有类的对象。由于新的类是由现有类的对象所组成,所以这种方法称为组合。该方法只是复用了现有程序代码的...原创 2019-12-02 23:44:18 · 498 阅读 · 0 评论 -
Java学习之操作符(三)
注:本博客内容是本人在看《Jave编程思想》这本书时从该书上抄录下来的一些片段。这里也强烈建议各位读者去购买这本书进行阅读学习。一、Java操作符操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不同,但效果相同。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言一致。操作符作用于操作数,生成一个新值。另外,有些...原创 2019-11-26 23:29:17 · 258 阅读 · 0 评论 -
Java学习之一切都是对象(二)
注:本博客内容是本人在看《Jave编程思想》这本书时从该书上抄录下来的一些片段。这里也强烈建议各位读者去购买这本书进行阅读学习。一、用引用操纵对象在Java的世界中,一切都被视为对象,因此可以采用单一固定的语法。尽管一切都看作对象,但操纵的标识符实际上是对象的一个“引用”(reference)。可以将这一情形想象成用遥控器(引用)来操纵电视(对象)。只需要握住这个遥控器,就能保持与电视机的...原创 2019-11-21 00:03:54 · 379 阅读 · 0 评论 -
Java学习之对象(一)
注:本博客内容是本人在看《Jave编程思想》这本书时从该书上抄录下来的一些片段。这里也强烈建议各位读者去购买这本书进行阅读学习。一、抽象过程所有编程语言都提供抽象机制。可以认为,人们能够解决的问题的复杂性直接取决于抽象的类型和质量。所谓的“类型”是指“所抽象的是什么?”汇编语言是对底层机器的轻微抽象。接着出现许多的所谓“命令式”语言(如BASIC、C等)都是对汇编语言的抽象。这些语言在汇编...原创 2019-11-20 22:52:55 · 266 阅读 · 0 评论 -
Maven使用之聚合与继承(六)
一、聚合有这样一个场景,例如我们目前有两个(甚至更多的项目)Maven项目project-a和project-b,有这样一个简单的需求,我们想要一次构建这两个项目,而不是进入到两个项目分别执行mvn命令。要实现这样一个一次构建两个项目的需求,这里需要Maven的一个特性——聚合。Maven聚合(或者称为多模块)这一就是为该需求服务的。为了能够使用一条命令就能够构建project-a和pro...原创 2019-11-17 02:32:51 · 260 阅读 · 0 评论 -
Maven使用之生命周期和插件(五)
Maven除了坐标、依赖以及仓库之外,还有两个核心的概念是声明周期和插件。在Maven的日常使用中,命令行的输入就对应了声明周期,例如mvn package就表示执行默认生命周期阶段package。maven的生命周期是抽象的,其实际行为是由插件来完成的。生命周期和插件两者协同工作,密不可分。一、何为生命周期Maven的生命周期就是为了对所有构建过程进行抽象和统一。Maven从大量的项目和...原创 2019-11-16 03:20:00 · 1708 阅读 · 0 评论 -
Maven使用之Maven仓库(四)
一、何为仓库在Maven的世界中,任何一个依赖、插件或者项目构建的输出,都可以称为构件。例如,依赖log4j-1.2.15.jar是一个构件,插件maven-compiler-plugin-2.0.2.jar是一个构件,某个项目构建完成之后的输出如:project-b-1.0-SNAPSHOT.jar也是一个构件。任何一个构件都有一组唯一标识。在不使用Maven的项目中,我们往往会看到命名...原创 2019-11-15 00:25:28 · 859 阅读 · 0 评论 -
基于Google的Zxing包生成带文字的二维码图片
最近遇到一个需求,就是需要在二维码的顶部、中心和底部位置添加文字,且将图片转成base64字符串,话不多说,先看效果图: 参照网上一些博客后,自己编写的相关代码如下:package com.jackson.test;import com.google.zxing.BarcodeFormat;import...原创 2019-05-10 21:59:14 · 2150 阅读 · 1 评论 -
微信支付报201商户订单号重复问题
微信支付报201商户订单号重复问题问题描述: 用户在PC端使用扫码支付(微信NATIVE支付方式)生成一个微信支付预订单后,为对该订单立即完成支付;用户打开手机APP后看到该订单状态为未支付,点击立即支付,此时后台调用的是微信的APP支付方式。在这样的场景下,微信服务端会返回一个"201商户订单号重复"的错误信息。解决方法: 微信统一下单支付接口会对各种支付场景作区分。因此在调用统一...转载 2019-04-12 15:34:34 · 8877 阅读 · 0 评论