-----JAVA
时光无声_l
这个作者很懒,什么都没留下…
展开
-
SpringBoot源码分析系列(四)--web错误处理机制
主要依赖于ErrorMvcAutoConfiguration这个自动配置类。原创 2019-08-11 21:27:57 · 280 阅读 · 3 评论 -
记一次线上问题--SpringBoot项目开发内存占用过大
起因解决的思路解决方法1、打开Edit Configurations2、参考如下配置3、关于jvm配置4、Linux jvm设置关于Jvm调优Oracle官网有一份指导说明:起因由于业务的划分需要,以及需求的不断增加,我们现在已经有八个独立的服务,而每一个Springboot工程都有一个内置的Tomcat。刚开始的时候服务不是很多,服务器的内存也充足。随着服务的增加,慢慢发现内存越来越小,到...原创 2018-12-23 21:44:07 · 22412 阅读 · 10 评论 -
2018年12月9日21:46:48
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2018-12-09 21:46:46 · 226 阅读 · 1 评论 -
2018年11月18日21:50:52
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2018-11-18 21:50:51 · 237 阅读 · 1 评论 -
并发编程系列之深入理解JUC中AQS(AbstractQueuedSynchronizer)
深入理解JUC中AQSAbstractQueuedSynchronizer同步器队列同步状态Node节点 AQS通过内部实现的FIFO等待队列来实现资源获取线程的等待工作,如果当前线程获取资源失败,AQS则会将当前线程以及等待状态等信息构成一个Node节点,并将其加入等待队列中,同事会阻塞当前线程;当其它获取到资源的线程释放持有的资源时,则会把等待队列中的线程唤醒,使其再次尝试获取对应的资源。...原创 2018-11-11 21:39:19 · 249 阅读 · 1 评论 -
并发编程系列之深入理解Synchronized关键字
Java内存模型内存间交互操作 在介绍synchronized之前先简单的介绍一下JMM的交互操作 Java内存模型定义了8个操作来完成主内存和工作内存的交互操作。read:把一个变量的值从主内存传输到工作内存中load:在read之后执行,把read得到的值放入工作内存的变量副本中use:把工作内存中一个变量的值传递给执行引擎assign:把一个从执行引擎接收到的值赋给工作内...原创 2019-10-23 22:35:27 · 421 阅读 · 0 评论 -
一步一步学SpringCloud--服务治理机制
一步一步学SpringCloud--服务治理机制核心三要素服务治理机制服务提供者服务注册服务同步服务续约服务消费者获取服务服务调用服务下线服务注册中心失效剔除自我保护核心三要素 注册中心:Eureka提供的服务器,提供服务注册于发现的功能,即eureka-server 服务提供者:提供服务...原创 2018-10-28 21:38:38 · 433 阅读 · 13 评论 -
一步一步学Spring Cloud--服务注册与发现(Eureka)
目录简介服务治理服务注册服务发现简介SpringCloud Eureka是SpringCloud Netflix服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。服务治理服务治理可以说是微服务架构中最核心、最基础的模块,主要用来实现各个微服务实例的自动化注册与发现。使用服务治理的原因:在服务引用并不算多的时候,可以通过静态配置来完成...原创 2018-10-14 21:49:13 · 288 阅读 · 8 评论 -
并发编程系列之深入理解volatile关键字
并发编程系列之深入理解volatile关键字Java内存模型内存模型的特性原子性可见性有序性happens-before原则单一线程原则管程锁定规则volatile变量规则线程启动规则线程加入规则线程中断规则对象终结规则传递性volatile关键字volatile关键字的特性volatile关键字的可见性volatile关键字的有序性volatile的happens-before关系volatil...原创 2018-10-07 22:38:04 · 382 阅读 · 4 评论 -
SpringBoot中@Async注解配合@EnableAsync注解开启异步任务详解
目录前言没有异步执行,没有@Async注解时异步执行任务,加入@Async注解时前言@Async为异步注解,放到需要使用异步的方法上面,表示调用该方法的线程与此方法异步执行,需要配合@EnableAsync注解使用。没有异步执行,没有@Async注解时1、创建一个普通的类,并注入到IOC容器中package com.example.demo;import org.springframe...原创 2018-09-23 22:01:08 · 11498 阅读 · 18 评论 -
Java线程的6种状态及切换(透彻讲解)
Java中线程的状态分为6种。1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪...原创 2018-09-16 22:25:38 · 498 阅读 · 10 评论 -
2018年12月30日22:00:20
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2018-12-30 22:00:35 · 264 阅读 · 0 评论 -
2019年1月6日21:56:39
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-01-06 21:56:54 · 413 阅读 · 1 评论 -
2019-1-27 21:39:152
2019年1月27日21:38:29原创 2019-01-27 21:39:11 · 269 阅读 · 3 评论 -
springboot源码分析系列(三)--@EnableAutoConfiguration自动配置加载过程
为什么需要自动化配置 在常规的spring应用程序中,充斥着大量的配置文件,我们需要手动去配置这些文件,如配置组件扫描、视图解析器、http编码等等。常规的配置让开发人员将更多的经历耗费在了配置文件上。而这些配置都是一些固定模式的配置方式,甚至很多都是模板代码。那既然是这样一种情况,有没有一种可能性,让spring自动完成这些模板配置工作呢?答案是肯定的,这就是SpringBoot AutoConfiguration产生的初衷。将开发人员从繁重的配置工作中解放出来,把这些繁琐的配置交由SpringBoo原创 2019-08-04 21:48:15 · 1134 阅读 · 0 评论 -
springaop拦截链实现过程
springaop是基于反射和动态代理实现的原创 2019-07-07 21:37:38 · 300 阅读 · 2 评论 -
优雅的编程--开发利器lombok
lombok能以简单的注解形式来简化代码,提高开发人员的开发效率。例如,开发过程正宗经常需要写javabean,需要花时间去添加响应的getter/setter,也许还要写构造器、equals等方法,而且需要维护,当属性很多的时候会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。pom文件添加依赖<depen...原创 2019-06-23 21:34:41 · 393 阅读 · 6 评论 -
springmvc调用过程
2019年6月16日19:18:07原创 2019-06-16 19:18:24 · 457 阅读 · 3 评论 -
springmvc原理
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-06-09 21:49:04 · 3627 阅读 · 3 评论 -
我的新名字
大家好,我今天改名字了,取了一个好听的名字,叫傻狗原创 2019-06-02 21:56:00 · 283 阅读 · 4 评论 -
java类加载
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-05-26 21:48:04 · 177 阅读 · 4 评论 -
SpringBoot整合Activiti5.22.0
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-03-10 21:34:44 · 1536 阅读 · 1 评论 -
一步一步学SpringCloud--API网关(gateway)
API网关简述Spring Cloud Gateway特性Spring Cloud Gateway与Netflix Zuul对比Spring Cloud Gateway工作模式简述Spring Cloud Gateway是Spring官方基于Spring5.0,Spring Boot2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway是为了为微服务架...原创 2019-02-10 21:36:44 · 1610 阅读 · 3 评论 -
2019-1-27 21:39:152
2019年1月27日21:38:29原创 2019-01-27 21:39:42 · 442 阅读 · 7 评论 -
SpringBoot生成sql脚本
前言最近项目新增加了一个导入导出的功能,起因是因为项目需要迁移环境,项目的业务需要所有的页面都是可配置的,当我在测试环境配置好一套页面,并且测试无误后,需要把我配置好的这套页面的数据迁移到生产环境上,由此提出了这个需求。当然这个功能也并不是很难做。public void outputSQL() throws ClassNotFoundException{ String cr...原创 2018-08-26 21:33:31 · 3296 阅读 · 17 评论 -
spring boot注解@Transactional失效
引言 数据库事务,将有限系列的执行命令作为单个逻辑执行单元,单元内的任务要么全部成功,要么全部失败。起因 由于业务逻辑需要,操作要么全部成功,要么全部失败。于是,抽出一个公共的service对数据库进行增删改操作。在执行这个方法的时候发现最后一次的操作失败了之后,前面的所有操作都...原创 2018-08-19 22:55:03 · 5872 阅读 · 49 评论 -
浅析spring中的设计模式
设计模式是我们再写代码的时候一种被承认的较好的模式。好的设计模式就像是给代码造了一个很好的骨架,在这个骨架里,你可以知道心在哪里,肺在哪里,因为大多数人都认识这样的骨架,就有了很好的传播性。这是从易读性和易传播性来感知。 当然设计模式本身更重要的是设计原则的一种实现,比如开闭原则,依赖倒转原则,这些是在代码的修改和扩展上...原创 2018-04-21 17:35:24 · 776 阅读 · 23 评论 -
Spring系列博客:Spring事务管理(二)--事务管理内容
上一篇博客中,我们了解了事务的基本概念和多个事务并发运行时可能导致的问题。下面这一篇博客具体介绍一下Spring事务管理的具体内容 1、Spring事务核心接口 Spring事务管理的实现有许多细节,如果对整个接口框架有个大体了解会非常有利于我们理解事务,下面通过讲解Spring的事务接口来了解Spring实现事务的具...原创 2018-04-12 16:11:24 · 597 阅读 · 17 评论 -
Spring系列博客:Spring事务管理(一)--什么是事务
前言 在实际的应用场景中,我们经常会遇到频繁的修改读取数据的问题。在同一时刻,不同的业务逻辑对同一个表进行修改,这种冲突很有可能造成不可挽回的错乱。所以我们需要用事务对数据来进行管理。 事务的特性 事务必须服从四个原则:A(原子性)C(一致性)I(隔离性)D(持久性)。通俗来讲,事务其实就是一系列指令的集合。 ...原创 2018-04-07 21:23:23 · 1007 阅读 · 78 评论 -
对于JDBC的认识
简介 JDBC(java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库可提供统一访问,它由一组用java语言编写的类和接口组成。 JDBC常用接口 java API提供对JDBC的管理链接;java Driver API支持JDBC管理到驱动器连接 1、Driver接口原创 2018-03-20 11:02:08 · 642 阅读 · 32 评论 -
【SSH】Struts2详解
Struts2简介 Struts2是一个基于MVC设计模式的web应用框架,它本质上相当于一个servlet,在mvc设计模式中,Struts2作为控制器(controller)来建立模型与视图的数据交互 。 Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够...原创 2018-03-11 21:47:19 · 400 阅读 · 22 评论 -
tomcat安装教程
下载Tomcat安装文件,官方下载地址是:http://tomcat.apache.org/,本文以tomcat-7.0.26版本为例进行安装过程的原创 2018-02-04 21:05:41 · 681 阅读 · 13 评论 -
利用xpath提取xml文档数据
之所以要引入xpath的概念,目的就是为了在匹配xml文档结构树时能够准确地找到某一个节点元素。可以把xpath比作文件管理路径:通过文件管理路径,可以按照一定的规则查找所需要的文件;同样,依据xpath所制定的规则,也可以很方便地找到xml结构文档树种的任何一个节点。 W3C将其独立作为XSLT的配套标准颁布,它是XSLT以及XPointer的重要组成部分。XPath可分为四种数据类型原创 2018-01-14 21:43:24 · 2096 阅读 · 14 评论 -
【JAVA基础】反射机制
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制一、什么是java反射反射使程序代码能够接入装载到JVM中的类的内部信息,允许在编写与执行时,而不是源代码中选定的类协作的代码,是以开发效率换运行效率的一种手段。这使反射称为构建灵活应用的主要工具。反射的作用: 1、调用一些私有方法,实现黑科技。比如原创 2017-12-24 21:17:17 · 418 阅读 · 24 评论 -
【JAVA基础】枚举(enum)用法
一些程序在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,jdk5以前采用自定义类来解决,jdk5以后可以直接采用枚举来解决枚举的特性1、枚举是一种特殊形式的java类2、枚举类中声明的每一个枚举值代表枚举类的一个实例对象3、与java中的普通类一样,在声明枚举;类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的4、枚举类也可以实现接口或继承抽象类5、jdk5中原创 2017-12-02 17:46:54 · 415 阅读 · 16 评论 -
【JAVA基础】如何通俗的理解多线程
1、进程一个正在执行中的程序。每一个进程执行都有一个执行顺序,该顺序是一个执行路径或者叫一个控制单元。2、线程进程中的一个负责程序执行的控制单元,一个进程中可以多执行路径,称之为多线程。线程在控制着进程的执行。一个进程中至少有一个线程。3、线程状态(1)新建状态:新创建了一个线程对象(2)就绪状态:线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可原创 2017-11-22 19:04:21 · 555 阅读 · 26 评论 -
Spring系列博客:Spring特性(二)--Spring IOC原理以及IOC容器的实现
目录目录一、什么是IOC/DI对象和对象关系怎么表示?描述对象关系的文件存放在哪里?如何对不同的配置文件进行解析?二、Spring IOC体系结构1、BeanFactory最基本的IOC容器接口BeanFactory2、BeanDefinition三、IOC容器的初始化一、什么是IOC/DI  ...原创 2018-05-13 22:24:03 · 1001 阅读 · 13 评论 -
对于SpringCloud的理解和认识
微服务 SpringCloud是Spring为微服务架构思想做的一个一站式实现。从某种程度是可以简单的理解为,微服务是一个概念、一个项目开发的架构思想。SpringCloud是微服务架构的一种java实现。 什么是微服务? 微服务没有一个标准统一的概念,个人理解:微服务是一种可以让软件职责单一、松耦合、自包含、可以独立运行和部署的架构思想。 关键思想:拆分、原创 2018-04-29 21:40:55 · 7549 阅读 · 16 评论 -
java后端参数校验--Hibernate validator
一、前言 在后端开发过程中,对参数的校验成为开发环境不可缺少的一个环节。一般情况下,我们会再前端和后端都对数据进行双重校验,以保证数据的准确性。如果参数较少,且规格简单的情况下,我们是可以还用简单的if判断即可满足条件。 比如参数不能为null,email必须符合email的格式,如...原创 2018-06-03 21:15:39 · 3683 阅读 · 6 评论 -
JVM 内存模型及垃圾回收
一、JVM内存区域 Java虚拟机在运行时,会把内存空间分为若干个区域,根据《Java虚拟机规范(Java SE 7 版)》的规定,Java虚拟机所管理的内存区域分为如下部分:方法区、堆内存、虚拟机栈、本地方法栈、程序计数器。 1、方法区 方法区主要用于存储虚拟机加载的类信息、常量、静态变量,以及编译器编译后的代码等数据。在jdk1.7及其之前,方法区是堆的一个“逻辑部分”(一片连续的堆空...原创 2018-08-12 21:49:02 · 739 阅读 · 12 评论