自定义博客皮肤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架构的路上

前往JAVA架构的路上

  • 博客(132)
  • 资源 (2)
  • 收藏
  • 关注

原创 Intellij IDEA2017入门教程

IntellijIdea 2017入门教程

2017-06-01 21:27:28 26175 18

原创 深入理解EnableAutoConfiguration原理

源码分析@EnableAutoConfiguration在SpringBoot中的加载和实例化过程万里长征第一步,我们先理解下什么是EnableAutoConfiguration?什么是EnableAutoConfiguration注解?在哪?org.springframework.boot.autoconfigure.EnableAutoConfigurationEnableAutoConfiguration概述我们先来看下源码package org.springframewor

2020-07-05 08:57:21 14579 6

原创 彻底弄懂Spring中Bean的解析、创建和使用

Spring加载Bean、实例化Bean、获取Bean流程本文旨在通过分析源码的方式,来剖析Spring加载Bean、实例化Bean、获取Bean的流程,部分核心内容会在源码中说明。内容比较枯燥,慎入!第一步,启动一个Spring项目Spring启动入口从官方文档中我们可以获取到下面这种Spring的启动方式。我们传入一个text.xml文件ApplicationContext context = new ClassPathXmlApplicationContext("classpa

2020-06-28 07:12:21 2469

原创 彻底弄懂Spring Schedule加载和执行流程

Spring ScheduledSpring定时任务源码分析入口,启用定时任务注解 @EnableScheduling@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Import(SchedulingConfiguration.class)@Documentedpublic @interface EnableScheduling {}org.springframework.scheduling.annotat

2020-06-24 19:38:07 4038

原创 Maven中Module版本号定义在根POM中供其他module使用

一、需求背景项目中有个API层暴露给使用方使用,内部多个module也在使用,API层变动比较频繁,如果每次都去多个module中修改,比较浪费时间,现希望集中统一管理(只改一处即可)二、解决方案插件方式 <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId>三、示例使用地址https://gitee.

2020-06-16 18:27:32 1964

原创 你不知道lambda的秘密和陷阱

二探lambda表达式从例子二探lambda传递Runnable创建Threadjava8之前package com.baigt.learn.nolambda;public class NoLambdaWithSecond { public static void main(String[] args) { new Thread(new Runnable() ...

2019-12-22 23:32:11 1338 1

原创 lambda表达式实战

lambda表达式实战从例子引出lambda传递Runnable创建Threadjava8之前 Thread thread=new Thread(new Runnable() { @Override public void run() { // do something ...

2019-12-19 16:14:49 1043

原创 idea中HTTP测试支持

idea中HTTP测试支持主要提供了两种,一种是图形界面的,一种是curl式的需求请求https://httpbin.org/post 请求格式是application/json ,requestBody是{ "id": 999, "value": "content" }图形界面选择tools---&gt;http client --&gt; test restful w...

2018-08-23 18:49:30 15778 3

原创 Intellij Idea git分支操作相关基础操作

Idea中Git使用文档主要介绍新建分支功能,切换分支功能,删除分支,合并分支,提交分支功能。切换分支新建分支 点击右下角底部的Git状态栏Git:master/或者是分支名2. 查看其它分支:点击show xxx More,可出现其它分支。  说明:靠近上边边缘可以变化窗体大小,确定窗体焦点的情况下,可以直接输入文字,搜索分支或者master3. 选...

2018-07-27 18:12:33 6420

原创 SpringBoot 2.0 系列007 --WEB容器详解

SpringBoot 2.0 系列007 --WEB容器详解我们知道java常用的两大容器tomcat和jetty,其中SB默认内嵌了tomcat容器。那么SB都支持什么属性呢?参阅ServerProperties.java基本是通用的服务器配置,以及error、Compression、Http2、Servlet、Tomcat、Jetty、Undertow等配置。可用配置1. 通用服务配置port...

2018-05-22 16:30:11 4236

原创 SpringBoot 2.0 系列006 --启动实战之注解使用

SpringBoot 2.0 系列006 --启动实战之注解使用一些误区说明网上很多教程默认使用SpringBootApplcation注解,且只用这个即可扫描启动类包下所有的bean。 而官方默认教程使用的是@EnableAutoConfiguration,这个注解和SpringBootApplication注解的区别是什么?参阅2.0.1官方文档说明If you don’t want to u...

2018-05-18 16:14:34 2679

原创 SpringBoot 2.0 系列005 --启动实战之SpringApplication应用

SpringBoot 2.0 系列005 --启动实战之SpringApplication应用2.X 官方示例注意是只使用了@EnableAutoConfiguration,默认是只扫描这一个我们自定义的类到bean中。不含子包和本包。下一篇我们分析原因。package hello;import org.springframework.boot.*;import org.springfram...

2018-05-17 16:47:45 1185

原创 SpringBoot 2.0 系列004 --启动实战之配置文件

SpringBoot 2.0 系列004 --启动实战之配置文件配置文件配置文件加载流程很多文档包括官方文档说SB的默认配置文件是application开头的文件,那么是为什么呢?我们先看下流程图 由上述流程我们发现,在执行SpringApplication的run方法中的prepareEnvironment子方法时,触发ConfigFileApplicationListener类中的 load方...

2018-05-16 14:24:29 2273

原创 SpringBoot 2.0 系列003 --自定义Parent

SpringBoot 2.0 系列003 --自定义Parent默认我们使用SpringBoot的方式是通过SB的parent项目的方式,此种之前的教程中我们已经演示过了,这里不做赘述。使用自定义parent管理SpringBoot项目第一步 配置父项目新建名为SpringBootLearn的maven空项目配置我们的SpringBootLearn项目的pom文件,如下&lt;?xml versi...

2018-05-15 13:54:02 5391 1

原创 SpringBoot 2.0 系列002 --运行流程分析

SpringBoot 2.0 系列002 --运行流程分析1. SpringBoot运行的几种方式1.1 开发环境,右键配置类main方法运行配置如下,引入相关pom依赖,运行main方法即可启动简单的SpringBoot web应用。//开启SpringBoot自动注入配置 等价于原来的SpringBootApplication@EnableAutoConfiguration//开启Res...

2018-05-14 16:54:31 3000 2

原创 SpringBoot 2.0 系列001 -- 入门介绍以及相关概念

SpringBoot 2.0 系列001 -- 入门介绍以及相关概念什么是SpringBoot?项目地址:http://projects.spring.io/spring-boot/SpringBoot介绍Spring Boot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run"。 我们为Spring平台及第三方库提 供开箱即用的设置,这样你就可以有条不紊地开始。...

2018-05-10 17:28:43 1195

原创 JVM笔记

垃圾回收1. 如何判断对象是垃圾对象?引用计数法在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值+1,当引用失效时,则值-1. 此方式不能解决循环引用的问题。验证添加gc日志,_005GC.java -verbose:gc -XX:+PrintGCDetails发现hotspot不是使用此法。可达性分析法

2018-04-03 14:41:08 817

原创 Java位运算总结

关于二进制关于二进制的概念,网上已经很多,这里不多赘述,只说关键的属性说明和示例。维基百科记住,原码是给人看的,补码才是计算机真正使用的。我们一般所说的二进制是有32位,首位是符号位。0是正数,1是负数。下面我们来根据例子说明二进制与十进制的转换,以及原码补码反码的概念。二进制转10 进制(32位太长,我们省略我8位方便演示)

2018-03-06 21:45:45 581

原创 Idea编辑器行号后的空白部分

Idea编辑器行号后的空白部分问题描述我们经常发现在idea的编辑器的行号紧随部分会有很大的空白。有时候会觉得占屏幕空间。 如下图所示:问题分析让我们回忆下,在此位置上还有什么呢?对了 还有接口,Spring,类,枚举,运行等等的小图标,会不会是这个引起的呢?如果是这个的话,我们又应该怎么设置呢?解决方案既然是编辑器问题,我们就找编辑器选项下的内容,具体是: File | Settings | E...

2018-02-09 14:45:57 3053

原创 Tomcat配置JMX并使用JvisualVm进行连接

配置tomcat编辑tomcat/bin/catalina.sh在# ----- Execute The Requested Command ----------------------------------------- 后追加如下配置。CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=123.12

2018-01-25 16:29:54 1952

转载 JDBC知识点

jdbc说明什么是jdbc?(Java Data Base Connectivity,java数据库连接),由一些接口和类构成的API步骤注册驱动 (只做一次)建立连接(Connection)创建执行SQL的语句(Statement)执行语句处理执行结果(ResultSet)释放资源注册驱动Class.forName(“com.mysql.jdbc.Driv

2017-12-22 14:07:10 703

转载 JDK内置工具

JDK内置工具 JDK自带工具一览表 JDK(Java Development Kit)是Java程序员最核心的开发工具,没有之一。JDK是一个功能强大的Java开发套装,它不仅仅为我们提供了Java运行环境,还给开发人员提供了许多有用的开发组件(位于bin目录中,如下图所示)。仅仅使用JDK,就能够解决我们在Java开发过程中遇到的许多问题。下面,我们就按照工具文件名

2017-12-18 11:40:24 8797

原创 你真的了解For循环吗?一道For循环Java面试题引发的思考

疑问最近群友抛出了一个面试题,就是下图中的第二题,是关于一个for循环的执行结果的问题,他的代码的执行结果是什么呢? 代码复现下面的例子和面试题上面的大同小异,是个非常简单的例子。首先这个代码是可以编译通过的,也可以正常执行的。那么执行结果是什么呢?会跟我们猜想的一样吗?/** * Created by baiguantao on 2017/10/

2017-10-23 11:53:06 5860

原创 java数据结构与算法之数组篇

数据结构和算法的概述数据结构对计算机内存中的数据的一种安排。常见数据结构数据结构优点缺点数组插入快(根据下标)查找慢,删除慢,大小固定有序数组比无序数组查找快删除和插入慢,大小固定栈提供后进先出的存取方式存取其他

2017-10-17 19:41:44 827

原创 Java9之HttpClientAPI实战详解

Java9之HttpClientAPI实战详解前言相信关注java9的小伙伴们都知道java9版本内置模块提供了Http功能,当然并不是说之前jdk之前并不支持,那么这次更新又多了什么呢?或者是解决了什么问题?说明自JDK 1.0以来,Java已经支持HTTP/1.1。 HTTP API由java.net包中的几种类型组成。 现有的API有以下问题:它被设计

2017-10-03 09:45:03 8206 2

原创 Java9教程(持续更新...)

前言本文会持续更新Java9相关的教程,如果你想了解Java9的其他方面,也可以留言告知我。我会出相关的教程目录Java9之JShell入门Java 9 Module的特性以及解决的问题 未完待续结语作者:ricky交流群:244930845

2017-09-28 14:10:05 1874 1

原创 Java 9 Module的特性以及解决的问题

Java 9 Module的前世今生Java 9 模块化的一个最大的变化体现在Java结构上。 本文将介绍关于“Java 9模块系统的”高级特性。Java 9 模块化我们将探讨关于Java 9模块化系统的以下主题:1.介绍2.JavaSe9之Jigsaw Project3.当前Java系统的问题4.Java9模块系统的特性

2017-09-28 13:24:10 14149

原创 Java9之Jshell入门

写在前面在学习JSHELL之前确保,已经安装过jdk9,可以参阅Java9安装。为什么要学Jshell学习Jshell需要知道他的特性, Read-Eval-Print-Loop (REPL)交互式解释器(REPL)既可以作为一个独立的程序运行, 也可以很容易地包含在其他程序中作为整体程序的一部分使用。 REPL为运行Java脚本与查看运行结果提供了一种

2017-09-25 17:44:45 3231

原创 Java9安装

前言没有Java9安装包的,可以去我的网盘里面下载(链接:https://pan.baidu.com/s/1bQlfdk 密码:bchl),里面内含window和linux两个版本。安装 这里已window下的安装为例。第一步,双击安装文件。 第二步,选择安装目录第三步,开始安装。第四步,定制安装(JRE). 第五步,安装中.第六步,安装完成。测试附 Java9官方文档官方文档地址结语作者

2017-09-22 21:07:26 5225 1

原创 本地配置Java项目映射为外网访问【https协议版本】

问题描述最近公司项目融合小程序,小程序要求是https的,为了方便调试,需要配置为本地映射外网。解决方案配置tomcat ssl协议 网上配置ssl的比较多,基本都是借助jdk自带的keytools工具生成证书 生成完证书后,配置如下信息: <Connector port="8443" maxHttpHeaderSize="8192" maxThrea

2017-09-22 17:44:56 3747

原创 SpringBoot热部署(Class+Thymeleaf)

前言 随着Springboot的盛行,Springboot的便利性逐渐体现,今天我们来说下SpringBoot的热部署的便利性。实现 这里我们选用的是Idea工具进行操作,thymeleaf的实时变更依赖于此IDE。环境 Springboot 1.5.2.RELEASE 核心依赖 <dependency> <groupId>org.spr

2017-09-20 09:41:24 3288 1

原创 SpringBoot整合Spring Security和Mybatis验证

近来项目后台做安全验证,仔细考虑之后选型Security。一、引入依赖 <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>4.2.3.RELEA

2017-09-18 13:56:28 2983 1

原创 2017JAVA面试题附答案

声明,本人能力有限,只是列出来参考,不对之处欢迎指正。JAVA基础JAVA中的几种基本类型,各占用多少字节? 下图单位是bit,非字节 1B=8bit String能被继承吗?为什么?不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。平常我们定义的String str=”a”;其实和String str=n...

2017-08-25 18:13:24 206210 44

原创 深入理解Java类实例化时jvm执行顺序

前言 关于jvm类加载器我们面试的时候会经常问到,如果相关概念不清楚的话可以参阅我的深入理解虚拟机之类加载器 。这一篇文章旨在实战演示jvm执行的顺序。示例代码package com.jdk.learn;/** * Created by ricky on 2017/8/25. * * 类加载器加载顺序考究 * * */public class ClassLoaderTest {

2017-08-25 15:47:21 39579 10

转载 深入Java虚拟机之类加载

深入Java虚拟机_ClassLoader类加载器深入剖析Java虚拟机与程序的生命周期在如下几种情况下,Java虚拟机将结束生命周期执行了System.exit()方法程序正常执行结束程序在执行过程中遇到了异常或错误而异常终止由于操作系统出现错误而导致Java虚拟机进程类的加载连接和初始化加载:查找并加载类的二进制数据连

2017-08-19 03:14:32 32636 9

转载 log4j 配置全面解析

背景Log4j是Apache的一个开源项目,通过使用Log4j,可以控制将应用日志信息输送到:控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程、数据库等;可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,

2017-08-17 15:08:28 1294

原创 Intellij Idea 方法自动生成参数默认名(像Eclipse那样)

使用过Eclipse的同学都知道,其默认会自动为方法补全参数名称。在网上找了很多资料基本都是用ctrl+p之类的凑合着看,或者其他之类的,然而并没有真正的生成代码,还是要手动!后来我去官方的插件库搜索,发现关于method的插件挺多的,就逐一观测实验,终于发现了一个可以在一定程度上实现自动生成的插件。(个人觉得不是太完美(不能支持同一方法多参数的生成),不过能缓解某些强迫症的孩子的症状)插件支持

2017-08-17 10:04:27 25664 4

原创 Spring 定时任务scheduled详解

Spring的定时任务的相关支持是存放在Spring-context.jar中的,默认是关闭状态,使用的话记得开启。开启定时任务 使用注解@EnableScheduling 即可开启各方式说明 这里我们使用@Scheduled的方式进行讲解。默认提供了fixedDelay,fixedRate,cron参阅源代码:public @interface Scheduled { Str

2017-08-16 11:10:56 3715

转载 JVM 垃圾回收器工作原理及使用实例介绍

垃圾收集基础Java 语言的一大特点就是可以进行自动垃圾回收处理,而无需开发人员过于关注系统资源,例如内存资源的释放情况。自动垃圾收集虽然大大减轻了开发人员的工作量,但是也增加了软件系统的负担。拥有垃圾收集器可以说是 Java 语言与 C++语言的一项显著区别。在 C++语言中,程序员必须小心谨慎地处理每一项内存分配,且内存使用完后必须手工释放曾经占用的内存空间。当内存释放不够完全

2017-08-14 22:02:01 417

原创 微服务概述

微服务HOT?Why?微服务什么?微服务解决了什么问题?微服务有什么特点?单体架构是什么一个归档包包含了应用所有功能的应用程序, 我们通常称之为单体应用。 架构单体应用的架构风格, 我们称之为单体架构, 这是一种比较传统的架构风格。单体架构存在的缺点复杂性逐渐变高技术债务逐渐上升部署速度逐渐变慢阻碍技术创新无法按需伸缩架构的演进单体架构 SOA 微服务什么是微服务Ma

2017-08-11 21:38:37 476

Thymeleaf3.0中文翻译文档.pdf

Thymeleaf3.0中文翻译文档.pdf

2017-08-01

Intellij IDEA2017入门教程

Intellij IDEA2017入门教程 涵盖安装、配置、常见问题&技巧、Maven、Git、Tomcat、快捷键、项目配置等

2017-05-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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