自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (3)
  • 收藏
  • 关注

原创 Mac系统及IDEA的PlantUML插件的安装和使用

安装graphviz和plantUML依赖Graphviz 是一个开源的额图片渲染库,可以将PlantUML脚本转换成图片先安装Graphviz,在终端执行:brew install graphviz安装好之后,再安装plantumlbrew install plantuml安然后在IDEA安装plantuml插件安装好之后,重启IDEA,就可以右击创建plantUML文件啦。创建完后的文件及展示:...

2021-07-14 19:35:09 876

原创 RPC框架设计(三)-Netty核心原理

3.Netty核心原理3.1 Netty介绍3.1.1 原生NIO存在的问题1.NIO的类库和API繁杂,使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。2.需要具备其他的额外技能:需要熟悉Java多线程编程,因为NIO编程涉及到Reactor模式,必须对多线程和网络编程非常熟悉,才能编写出高质量的NIO程序。3.开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理

2021-05-07 19:35:54 183

原创 RPC框架设计(二)-NIO编程

2.NIO编程2.1 NIO介绍Java NIO全称java non-blocking IO,是指JDK提供的新API。从JDK1.4开始,Java提供了一系列改进的输入/输出的新特性,被统称为NIO(即 New IO),是同步非阻塞的。1.NIO有三大核心部分:Channel(通道)、Buffer(缓冲区)、Selector(选择器)2.NIO是面向缓冲区编程的。数据读取到一个缓冲区中,需要时可在缓冲区中前后移动,这就增加了处理过程中的灵活性,使用它可以提供非阻塞时的高伸缩性风格3.Java N

2021-05-07 15:55:25 234

原创 RPC框架设计(一)-Socket回顾与I/O模型

1.Socket回顾与I/O模型1.1 Socket网络编程回顾1.1.1 Socket概述Socket,套接字就是两台主机之间逻辑连接的端点。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP协议是应用层协议,主要解决如何包装数据。Socket是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议、本机主机的IP地址、本地进程的协议端口、远程主机的IP地址、远程进程的协议端口。1.1.2 S

2021-05-07 14:15:45 109

原创 SpringBoot源码剖析(二)-依赖管理

2.2 源码剖析-依赖管理问题1:为什么导入dependency时不需要指定版本?在Spring Boot入门程序中,项目pom.xml文件有两个核心依赖,分别是spring-boot-starter-parent和spring-boot-starter-web,关于这两个依赖的相关介绍具体如下spring-boot-starter-parent在chapter01项目中的pom.xml文件中找到spring-boot-starter-parent依赖,实例代码如下:<!-- Spring

2021-04-06 17:17:37 200

原创 SpringBoot源码剖析(一)-SpringBoot源码环境构建

2.1 SpringBoot源码环境构建2.1.1 下载源码https://github.com/spring-projects/spring-boot/releases下载对应版本的源码(课程中采用spring-boot-2.2.9.RELEASE)2.1.2 环境准备1.JDK1.8+2.Maven3.5+2.1.3 编译源码进入spring-boot源码根目录执行mvn命令:mvn clean install -DskipTests -Pfast //跳过测试⽤例,会下载⼤

2021-04-06 15:50:34 106

原创 手写实现迷你版Tomcat

手写实现迷你版Tomcat名称: MinicatMinicat要做的事:作为一个服务器软件提供服务,即我们可以通过浏览器客户端发送http请求,Minicat可以接收到请求进行处理,处理后的结果可以返回浏览器客户端。1)提供服务,接收请求(Socket通信)2)请求信息封装成Request对象(Response对象)3)客户端请求资源,资源分为静态资源(html)和动态资源(Servlet)4)资源返回给客户端浏览器我们递进式完成以上需求,提出V1.0、 V2.0、 V3.0版本的需求V1.

2021-03-25 19:07:12 115

原创 Tomcat 服务器核⼼配置详解

Tomcat 服务器核心配置详解问题一:去哪配置?核心配置在tomcat目录下conf/server.xml文件问题二:怎么配置?注意:- Tomcat作为服务器的配置,主要是server.xml文件的配置- server.xml中包含了Servlet容器的相关配置,即Catalina的配置- xml文件的讲解主要是标签的使用主要标签结构如下:<!-- Server 根元素,创建⼀个Server实例,⼦标签有 Listener、 GlobalNamingResources、Servic

2021-03-25 17:49:11 108

原创 Tomcat 系统架构与原理剖析

一、浏览器访问服务器的流程http请求的处理过程:注意:浏览器访问服务器使用的是Http协议,Http是应用层协议,用于定义数据通信的格式,具体的数据传输使用的是TCP/IP协议二、Tomcat 系统总体架构1.Tomcat处理请求大致过程Tomcat是一个Http服务器(能够接受并且处理http请求,所以tomcat是一个http服务器)我们使用浏览器向某一个网站发起请求,发出的是Http请求,那么在远程,Http服务器接收到这个请求之后,会调用具体的程序(java类)进行处理,往往不同的请

2021-03-25 14:25:00 422

原创 Spring MVC--SSM 整合

第 1 节 整合策略SSM = Spring + SpringMVC + Mybatis = (Spring + Mybatis) + SpringMVC先整合 Spring + Mybatis然后再整合 SpringMVC基于的需求: 查询 Account 表的全部数据显示到⻚⾯第 2 节 Mybatis整合Spring整合⽬标数据库连接池以及事务管理都交给Spring容器来完成SqlSessionFactory对象应该放到Spring容器中作为单例对象管理Mapper动态代理对象交

2021-03-18 21:36:38 49

原创 Spring MVC高级应用--乱码问题

乱码问题Post请求乱码, web.xml中加⼊过滤器<!-- 解决post乱码问题 --><filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!-- 设置编码参是UTF8 --> <init-p

2021-03-17 16:30:44 66

原创 Spring MVC高级应用--基于Flash属性的重定向请求数据传递

基于Flash属性的跨重定向请求数据传递重定向时请求参数会丢失,我们往往需要重新携带请求参数,我们可以进⾏⼿动参数拼接如下:return "redirect:handle01?name=" + name;但是上述拼接参数的⽅法属于get请求,携带参数⻓度有限制,参数安全性也不⾼,此时,我们可以使⽤SpringMVC提供的flash属性机制,向上下⽂中添加flash属性,框架会在session中记录该属性值,当跳转到⻚⾯之后框架会⾃动删除flash属性,不需要我们⼿动删除,通过这种⽅式进⾏重定向参

2021-03-17 16:22:33 108

原创 Spring MVC高级应用--在控制器中处理异常

在控制器中处理异常package com.lagou.edu.controller;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.Htt

2021-03-17 16:19:06 60

原创 Spring MVC高级技术--处理multipart形式的数据

处理multipart形式的数据⽂件上传原⽣servlet处理上传的⽂件数据的, springmvc⼜是对serlvet的封装所需jar包:<!--⽂件上传所需jar坐标--><dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</vers

2021-03-17 16:06:48 170

原创 Spring MVC高级技术--拦截器(Inteceptor)使用

拦截器(Inteceptor)使用监听器、过滤器和拦截器对比Servlet: 处理Request请求和Response响应过滤器(Filter): 对Request请求起到过滤的作⽤,作⽤在Servlet之前,如果配置为/*可以对所有的资源访问(servlet、 js/css静态资源等)进⾏过滤处理监听器(Listener): 实现了javax.servlet.ServletContextListener 接⼝的服务器端组件,它随Web应⽤的启动⽽启动,只初始化⼀次,然后会⼀直运⾏监视,随Web应

2021-03-17 15:24:58 199

原创 Spring MVC如何绑定日期类型

Spring MVC如何绑定日期参数类型(需要配置自定义类型转换器)前端jsp页面<fieldset> <p>测试⽤例: SpringMVC接收⽇期类型参数</p> <a href="/demo/handle06?birthday=2019-10-08">点击测试</a></fieldset>后台Handler方法/*** 绑定⽇期类型参数* 定义⼀个SpringMVC的类型转换器 接⼝,扩展实现接⼝接⼝,注册你的实

2021-03-17 13:42:19 217

原创 如何创建一个SpringBoot项目

如何创建一个springboot项目1.案例实线案例需求: 使用Spring Initializr方式构建Spring Boot项目,并请求Controller中的目标方法,将返回值响应到页面1.1 使用Spring Initializr方式构建Spring Boot项目本质上说,Spring Initializr是一个Web应用,它提供了一个基本的项目结构,能够帮助我们快速构建一个基础的Spring Boot项目Project SDK用于设置创建项目使用的JDK版本,这里,使用之前初始化设置好

2021-03-15 21:21:06 205

原创 1.SpringMVC应用--开发流程、请求处理流程、九大组件

1. Spring MVC开发过程1.配置DispetcherServclet前端控制器<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >​<web-app> <display-name>Archetype Created Web Application.

2021-03-12 15:25:25 108

转载 Git常用命令使用大全

Git常用命令使用大全查看、添加、提交、删除、找回,重置修改文件git help <command> # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- <file> # 抛弃工作区修改git co . # 抛弃工作区修改git add <file> # 将工作文件修改提交...

2019-05-17 10:11:11 102

原创 关于list添加null的问题

今天看同事写的代码,突然想到如果一个ArrayList添加多个null值会怎样,然后自己写了段代码测试了一下import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class ListAddNull { public static void main(String...

2018-12-27 10:48:20 10246

转载 ConcurrentHashMap实现原理及源码分析

ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现(若对HashMap的实现原理还不甚了解,可参考我的另一篇文章HashMap实现原理及源码分析),ConcurrentHashMap在并发编程的场景中使用频率非常之高,本文就来分析下ConcurrentHashMap的实现原理,并对其实现原理进行分析(JDK1.7).ConcurrentHashMa...

2018-12-25 16:54:14 96

转载 HashMap实现原理及源码分析

哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。目录一、什么是哈希表二、HashMa...

2018-12-25 16:47:35 210 3

转载 详解web.xml中元素的加载顺序

一、背景  最近在项目中遇到了启动时出现加载service注解注入失败的问题,后来经过不懈努力发现了是因为web.xml配置文件中的元素加载顺序导致的,那么就抽空研究了以下tomcat在启动时web.xml文件中元素的加载顺序,现在和大家分享。二、问题剖析和研究结果  遇到这种问题的时候,一般看源码是最直接和最权威的获取答案的方式,根据tomcat架构设计Context的实现类是Sta...

2018-12-12 18:49:58 355

转载 史上最全web.xml配置文件元素详解

一、web.xml配置文件常用元素及其意义预览 &lt;web-app&gt; &lt;!--定义了WEB应用的名字--&gt; &lt;display-name&gt;&lt;/display-name&gt; &lt;!--声明WEB应用的描述信息--&gt; &lt;description&gt;&lt;/description&

2018-12-12 18:46:43 226

转载 logback系列

logback系列logback系列之一:输出日志到控制台slf4j是Java的简单日志门面API,很多日志实现都可以与之集成,如JDK logging (java.util.logging), log4j和logback。优点是代码里不会有具体的日志实现类,减少侵入。 与log4j相比,logback具有一些优势,如更好的性能、更少的内存使用、自动重加载配置文件以及过滤功能等。 下面...

2018-12-12 18:04:56 557

转载 一个web项目web.xml的配置中配置作用

一个web项目web.xml的配置中&lt;context-param&gt;配置作用&lt;context-param&gt;的作用:web.xml的配置中&lt;context-param&gt;配置作用1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: &lt;...

2018-12-12 14:59:57 166 1

转载 HBase入门--HBase概念及表格设计

HBase概念及表格设计1. 概述(扯淡~)HBase是一帮家伙看了Google发布的一片名为“BigTable”的论文以后,犹如醍醐灌顶,进而“山寨”出来的一套系统。由此可见:  1. 几乎所有的HBase中的理念,都可以从BigTable论文中得到解释。原文是英语的,而且还有不少数学概念,看了有点儿懵,建议网上找找学习笔记看看,差不多也就可以入门了。  2. Google确实牛X。...

2018-12-12 11:21:14 208

转载 史上最全最详细JNDI数据源配置说明

尊重原创,转自:https://blog.csdn.net/zhanglf02/article/details/76726702 环境:tomcat6.0+Maven 要使用数据源就要知道数据源的由来:在java开发使用jdbc都要经历这四步①加载数据库驱动程序:(Class.forName(“数据库驱动类”);) ②连接数据库(Conn...

2018-12-12 11:03:48 1300

转载 JNDI在Spring和tomcat下的使用

1. 是什么JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一。JNDI 在 J2EE 中的角色就是“交换机” —— J2EE 组件在运行时间接地查找其他组件、资源或服务的通用机制。在多数情况下,提供 JNDI 供应者的容器可以充当有限的数据存储,这样管理员就可以设置应用程序的执行属性,并让其他应用程序...

2018-12-12 10:51:19 240

转载 mysql优化

原文:https://mp.weixin.qq.com/s__biz=MzI4NTA1MDEwNg==&amp;mid=2650763421&amp;idx=1&amp;sn=2515421f09c150d31e8d1b8b59243bd5&amp;chksm=f3f9c508c48e4c1ea64b00b25c226efa2b9e32910f83290bf383ce0d16ee0991c42ad...

2018-12-10 15:24:19 105

转载 MDC简介

一:MDC介绍  MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。某些应用程序采用多线程的方式来处理多个用户的请求。在一个用户的使用过程中,可能有多个不同的线程来进行处理。典型的例子是 Web 应用服务器。当用户访问某个页面时,应用服务器可能会创建一个新的线程来处理该请求,也可能从线...

2018-12-10 14:53:33 4243

JAVA核心知识点整理.pdf

就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。 但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。 我偶然从一个网友群中发现了整理的这份资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。 也不知道这位作者是谁,里面的内容也大多整理来自于互联网,但很明显的是这位作者为了整理这份资料用了很多心,在此表示感谢。

2020-07-02

grails-开源框架使用指南

如今的Java Web开发对于需求来说已经变得过于复杂。当今众多Java领域的Web开发框架不仅使用复杂,而且并没有很好的遵循Don’t Repeat Yourself(DRY)原则。 像Rails,Django和TurboGears这样的动态框架在Web开发领域开辟了一条新的道路,Grails基于这些概念之上,采用动态方法减小了Java平台上进行Web开发的复杂度,不过与那些框架不同的是,Grails是构建在Spring和Hibernate等Java已有的技术之上的。 Grails是一个full-stack框架,它借助于核心技术与相关的插件(plug-in)来解决Web开发中方方面面的问题,其中包括: 易于使用的基于Hibernate的对象-关系映射(ORM)层 称为Groovy Server Pages (GSP)的表现层技术 基于Spring MVC的控制器层 构建于Gant 上的命令行脚本运行环境 内置Jetty服务器,不用重新启动服务器就可以进行重新加载 利用内置的Spring 容器实现依赖注入 基于Spring的MessageSource核心概念,提供了对国际化(i18n)的支持 基于Spring事务抽象概念,实现事务服务层 借助于功能强大的Groovy动态语言和领域特定语言(Domain Specific Language,DSL),以上那些特性变得非常易用。 这篇文档会向你介绍如何使用Grails框架来搭建Web应用程序。

2018-06-12

webwork标签

webwork标签,通用标签,组件化标签,流程控制标签,迭代标签,UI标签,VUI标签

2014-08-15

空空如也

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

TA关注的人

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