07 2020 档案

摘要:一、热部署 添加依赖+Ctrl+F9 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </ 阅读全文
posted @ 2020-07-30 23:52 edda_huang 阅读(109) 评论(0) 推荐(0) 编辑
摘要:原文地址 Docker 提供了重启策略,以控制容器在退出时是否自动启动,或在 Docker 重新启动时自动启动。重启策略可确保链接的容器以正确的顺序启动。Docker 建议使用重启策略,并避免使用流程管理器启动容器。 重启策略跟 dockerd 命令的 --live-restore 标志不同。使用 阅读全文
posted @ 2020-07-29 10:29 edda_huang 阅读(298) 评论(0) 推荐(0) 编辑
摘要:Linux的虚拟机碎片整理 sudo dd if=/dev/zero of=/free bs=1M sudo rm -f /free 镜像压缩 移动镜像 VBoxManage internalcommands sethduuid F:\VirtualBox VMs\atguigu\atguigu-d 阅读全文
posted @ 2020-07-27 12:34 edda_huang 阅读(298) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/hiyachen/article/details/102131823 背景 在virtualbox中装好Linux以及Application之后,发现硬盘空间太小,怎样才能增加硬盘容量。 这里给出两个办法,其实是大同小易。 办法1 增加一个新的硬盘 办法2 阅读全文
posted @ 2020-07-27 11:28 edda_huang 阅读(891) 评论(0) 推荐(0) 编辑
摘要:1.操作场景2.前提条件3.划分分区并挂载磁盘4.设置开机自动挂载磁盘分区 1.操作场景 本文以云服务器的操作系统为“CentOS 7.4 64位”为例,采用fdisk分区工具为数据盘设置分区。 MBR支持的磁盘最大容量为2 TB,GPT最大支持的磁盘容量为18 EB,因此当您初始化容量大于2 TB 阅读全文
posted @ 2020-07-27 10:34 edda_huang 阅读(3047) 评论(0) 推荐(1) 编辑
摘要:这个问题其实困扰了挺久的,一直没闲情去解决,网上搜索过很多压缩方法感觉都太麻烦太复杂,因最近在windows上搞docker就一并解决了。 压缩vmdk 首先下载DiskGenius,这工具很牛X,相信很多人都用过其硬盘分区、合并、数据恢复等功能,可谓相当强大,甚至虚拟硬盘文件也不放过。。。 首先把 阅读全文
posted @ 2020-07-25 00:40 edda_huang 阅读(615) 评论(0) 推荐(0) 编辑
摘要:记一次创建tomcat docker容器后访问是404,进入到tomcat docker容器后发现webapps是空的 1.挂载 docker run -v localConfigFile:/containerPath 2.exec 进入容器修改 docker exec -it containerI 阅读全文
posted @ 2020-07-23 16:15 edda_huang 阅读(873) 评论(0) 推荐(0) 编辑
摘要:系统环境:centos7.7 (VMware中) image版本:tomcat:8-jdk8-openjdk (截止2020.01.10该系列版本) 安装步骤参考文章:https://www.jianshu.com/p/d053573ffab1 1、docker search tomcat 查看版本 阅读全文
posted @ 2020-07-23 15:46 edda_huang 阅读(259) 评论(0) 推荐(0) 编辑
摘要:使用docker默认镜像源下载镜像会很慢,因此很多情况下,我们在安装完docker以后都会修改为国内的镜像,这样在下载镜像的时候就不用等那么长时间了。 配置docker的镜像为阿里云镜像 方法一 $ cat /etc/sysconfig/docker # /etc/sysconfig/docker 阅读全文
posted @ 2020-07-23 11:44 edda_huang 阅读(4018) 评论(0) 推荐(0) 编辑
摘要:一,动态代理介绍 动态代理和静态代理的角色都是一样,静态代理模式的代理类是我们提前写好的,而动态代理的类是动态生成的,其实动态代理与静态代理的本质一样,最终程序运行时都需要生成一个代理对象实例,通过它来完成相关增强以及业务逻辑,只不过静态代理需要硬编码的方式指定,而动态代理支持运行时动态生成这种实现 阅读全文
posted @ 2020-07-20 10:51 edda_huang 阅读(126) 评论(0) 推荐(0) 编辑
摘要:一,静态代理介绍 了解设计模式中的代理模式的同学应该都知道如果想要为被代理类生成代理,需要让代理类和被代理类共同实现同一个接口,在代理类中增加额外逻辑来实现代理模式,这种方式在编译期间就已经确认了哪个类是代理类,被代理的又是哪个类,这都是需要开发人员在编译之前就编写好的,是为静态 1,代理模型的角色 阅读全文
posted @ 2020-07-20 10:07 edda_huang 阅读(140) 评论(0) 推荐(0) 编辑
摘要:1,打开IDEA创建一个项目 2,配置Tomcat服务器 3,运行 5,成功 t t 阅读全文
posted @ 2020-07-20 10:06 edda_huang 阅读(124) 评论(0) 推荐(0) 编辑
摘要:一,安装Tomcat服务器 1,下载tomcat网址: http://tomcat.apache.org/ 2,找到Download 3,下载 4:下载完成后,解压到任意目录 5:解压完成后得到目录 二,Tomcat 启动关闭 1,在下载的文件下找到bin目录,打开bin目录,找到startup.b 阅读全文
posted @ 2020-07-20 10:05 edda_huang 阅读(174) 评论(0) 推荐(0) 编辑
摘要:一,PreparedStatement介绍 PreperedStatement是Statement的子类,它的实例对象可以通过Connection.preparedStatement()方法获得,相对于Statement对象而言:PreperedStatement可以避免SQL注入的问题 State 阅读全文
posted @ 2020-07-20 10:04 edda_huang 阅读(201) 评论(0) 推荐(0) 编辑
摘要:一. statement对象 JDBC程序中的Connection用于代表数据库的链接;Statement对象用于向数据库发送SQL语句;ResultSet用于代表Sql语句的执行结果 JDBC中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库 阅读全文
posted @ 2020-07-20 10:02 edda_huang 阅读(149) 评论(0) 推荐(0) 编辑
摘要:一,JDBC介绍 SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC。这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加载具体的驱动,就可以操作数据库 JDBC全称为:Java Data Base Connectivit 阅读全文
posted @ 2020-07-20 09:52 edda_huang 阅读(331) 评论(0) 推荐(0) 编辑
摘要:第一步:创建数据库 MySQL代码 1 CREATE DATABASE `mybatis` ; 2 3 USE `mybatis`; 4 5 CREATE TABLE `user` ( 6 `id` INT(20) NOT NULL, 7 `name` VARCHAR(30) DEFAULT NUL 阅读全文
posted @ 2020-07-20 09:51 edda_huang 阅读(142) 评论(0) 推荐(0) 编辑
摘要:一,AOP介绍 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业 阅读全文
posted @ 2020-07-20 09:50 edda_huang 阅读(159) 评论(0) 推荐(0) 编辑
摘要:依赖注入DI 当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完 阅读全文
posted @ 2020-07-20 09:47 edda_huang 阅读(149) 评论(0) 推荐(0) 编辑
摘要:一,Spring简介: Spring是一个开源框架,它由Rod Johnson创建;它是为了解决企业应用开发的复杂性而创建的 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架 轻量 从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB 阅读全文
posted @ 2020-07-19 19:54 edda_huang 阅读(184) 评论(0) 推荐(0) 编辑
摘要:一. 注册要求 1. 一个注册页面 username (文本框) password:密码 (密码框) passwordYes :再次输入密码(密码框) hobby (多选框) sex (单选框) info (文本域) 2. servlet处理注册信息,判断两次密码是否相同 相同则跳到成功页面 不同则 阅读全文
posted @ 2020-07-19 18:46 edda_huang 阅读(753) 评论(1) 推荐(0) 编辑
摘要:一. Cookie Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了 1. 使用cookie记录用户上一次访问的时间 public class Co 阅读全文
posted @ 2020-07-19 16:10 edda_huang 阅读(133) 评论(0) 推荐(0) 编辑
摘要:一,ServletContext介绍 web容器在启动时,它会为每一个web应用程序都创建一个ServletContext对象,它代表当前web应用 多个Servlet通过ServletContext对象实现数据共享 获取web应用的初始化参数 用ServletContext实现请求转发 使用Ser 阅读全文
posted @ 2020-07-17 15:27 edda_huang 阅读(376) 评论(0) 推荐(0) 编辑
摘要:一. Servlet介绍 Servlet 是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容 Servlet是sun公司提供的一门用于开发动态web资源的技术 Sun公司在其A 阅读全文
posted @ 2020-07-17 15:21 edda_huang 阅读(151) 评论(0) 推荐(0) 编辑
摘要:用limit实现分页,首先要创建一个Maven项目,搭建好mybatis的实验环境,并且连接好数据库 代码 1,编写dao接口 UserMapper //查询全部用户实现分页 List<User> selectUser(Map<String,Integer> map); 2,编写对应Mapper映射 阅读全文
posted @ 2020-07-17 15:19 edda_huang 阅读(423) 评论(0) 推荐(0) 编辑
摘要:一、连接数据库的配置单独放在一个properties文件中 1,创建一个database.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis? useSSL=true&amp;useUnico 阅读全文
posted @ 2020-07-17 15:17 edda_huang 阅读(159) 评论(0) 推荐(0) 编辑
摘要:编写接口 import com.shandx.pojo.User; import java.util.List; public interface UserMapper { <span class="hljs-comment">//获取全部的用户</span> <span class="hljs-f 阅读全文
posted @ 2020-07-17 15:15 edda_huang 阅读(110) 评论(0) 推荐(0) 编辑
摘要:一,MyBatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java 阅读全文
posted @ 2020-07-17 15:08 edda_huang 阅读(171) 评论(0) 推荐(0) 编辑
摘要:一:环境及要求 环境: IDEA最新版 MySQL 5.7.19 Tomcat 9 Maven 3.6 要求: 需要掌握 MyBatis;Spring;SpringMVC;MySQL数据库以及简单的前端知识 二:项目编码 1:搭建数据库 1-1:创建一个数据库 1 CREATE DATABASE ` 阅读全文
posted @ 2020-07-17 11:11 edda_huang 阅读(232) 评论(0) 推荐(0) 编辑
摘要:一,文件上传 文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理文件上传工作 如果想使用Spring的文件上传功能,则需要在上下文中配置MultipartResol 阅读全文
posted @ 2020-07-17 11:10 edda_huang 阅读(150) 评论(0) 推荐(0) 编辑
摘要:一,AJAX 简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML) AJAX 不是新的编程语言,而是一种使用现有标准的新方法 AJAX 最大的优点是在不重新加载整个页面的情况下,能与服务器交换数据并更新部分网页内容 AJAX 阅读全文
posted @ 2020-07-17 11:09 edda_huang 阅读(153) 评论(0) 推荐(0) 编辑
摘要:一,JSON 介绍 JSON (JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率 二,JSON 语法 1,JSON 语法规则 在 JS 语言中,一切都是对象。因此,任何支持的类型 阅读全文
posted @ 2020-07-17 11:06 edda_huang 阅读(133) 评论(0) 推荐(0) 编辑
摘要:1.如果要替换的文件直接在war包的根目录(一级目录)下,直接使用jar uvf命令替换即可 如:替换a.war中b.xml文件 jar uvf a.war b.xml 注:b.xml需要和a.war在同一个目录下。 2.如果要替换的文件在war包的二级及以下目录下,则需要以下步骤: (1)使用ja 阅读全文
posted @ 2020-07-17 11:04 edda_huang 阅读(2124) 评论(0) 推荐(0) 编辑
摘要:一,MVC 概述 MVC:模型,视图,控制器,是一种软件设计规范,本质是将业务逻辑,数据,显示,分离的方式来编写代码;前后端分离 Model:数据模型,提供要展示的数据,一般我们都会把这两个分离开来。数据Dao,服务层ServiceView:负责进行数据的渲染和展示,客户端想要看到的东西Contro 阅读全文
posted @ 2020-07-17 11:03 edda_huang 阅读(135) 评论(0) 推荐(0) 编辑
摘要:下载地址 下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-winx64.zip 安装步骤 第一步:下载得到压缩包,并解压到自己的想要安装的目录;我的安装目录为:D:\mysql\mysql-5.7.19-winx64 第 阅读全文
posted @ 2020-07-17 10:44 edda_huang 阅读(122) 评论(0) 推荐(0) 编辑
摘要:MySQL的安装是比较复杂的,一旦安装出现错误或者出现其他问题,我们想要完全卸载MySQL也是非常麻烦的,下面简单说下怎样可以完全干净的卸载MySQL 卸载步骤 第一步:用管理员的身份打开命令窗口,关闭数据库,输入:net stop mysql 第二步:删除服务,输入:sc delete mysql 阅读全文
posted @ 2020-07-17 10:43 edda_huang 阅读(124) 评论(0) 推荐(0) 编辑
摘要:一,数据库语句 数据库数据是通过DML语句管理数据库数据,包括: INSERT (添加数据语句) UPDATE (更新数据语句) DELETE (删除数据语句) 1:INSERT (添加数据语句) INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2', 阅读全文
posted @ 2020-07-17 10:37 edda_huang 阅读(231) 评论(0) 推荐(0) 编辑
摘要:一. 外键概念: 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。在实际操作中,将一个表的值放入第二个表来表示关联,所使用的值是第一个表的主键值(在 阅读全文
posted @ 2020-07-17 10:29 edda_huang 阅读(128) 评论(0) 推荐(0) 编辑
摘要:数据库(DataBase,简称DB) 一. 基本数据库操作命令 flush privileges 刷新数据库 show databases 显示所有数据库 use dbname 打开某个数据库 show tables 显示数据库mysql中所有的表 describe user 显示表mysql数据库 阅读全文
posted @ 2020-07-17 10:27 edda_huang 阅读(147) 评论(0) 推荐(0) 编辑
摘要:一,Maven 介绍 我们在开发中经常需要依赖第三方的包,包与包之间存在依赖关系,版本间还有兼容性问题,有时还需要将旧的包升级或降级,当项目复杂到一定程度时包管理变得非常重要。Maven是当前最受欢迎的Java项目管理构建自动化综合工具 Maven提供了开发人员构建一个完整的生命周期框架。开发团队可 阅读全文
posted @ 2020-07-17 10:21 edda_huang 阅读(334) 评论(0) 推荐(0) 编辑
摘要:一. 准备工作 1. 传输协议 SMTP协议-->发送邮件: 我们通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器) POP3协议-->接收邮件: 我们通常把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器) 2. 邮件收发原理 阅读全文
posted @ 2020-07-17 10:16 edda_huang 阅读(653) 评论(0) 推荐(0) 编辑
摘要:一. 注意事项 在Web应用中,文件上传和下载功能是非常常用的功能,对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的 【文件上传的注意事项】 为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,比如放于WEB-INF目录下 为防止文件覆盖的现象发生,要为上传文件产生一个唯 阅读全文
posted @ 2020-07-17 10:15 edda_huang 阅读(1603) 评论(0) 推荐(0) 编辑
摘要:一,Vue.js 介绍 Vue 是一套用于构建用户界面的渐进式javascript框架,与其它大型框架不同的是:Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合,另外一个方面,当Vue与现代化的工具链以及各种支持类库结合使用时,Vue也完全 阅读全文
posted @ 2020-07-17 10:13 edda_huang 阅读(148) 评论(0) 推荐(0) 编辑
摘要:1. 导入mybatis所需要的依赖 1 <!-- 引入 myBatis,这是 MyBatis官方提供的适配 Spring Boot的--> 2 <dependency> 3 <groupId>org.mybatis.spring.boot</groupId> 4 <artifactId>mybat 阅读全文
posted @ 2020-07-10 17:24 edda_huang 阅读(148) 评论(0) 推荐(0) 编辑
摘要:一. 简介 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架;其主要目标是 使得对数据的访问变得方便快捷。对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库)。Spring Boot 底层都是采用 Spring Data 的方式进行统一处理各种数据 阅读全文
posted @ 2020-07-10 17:22 edda_huang 阅读(288) 评论(0) 推荐(0) 编辑
摘要:一. pom.xml 进入父项目,这里才是真正管理SpringBoot应用里面所有依赖版本的地方,SpringBoot的版本控制中心;以后我们导入依赖默认是不需要写版本;但是如果导入的包没有在依赖中管理着就需要手动配置版本了 二. 启动器 <dependency> <groupId>org.spri 阅读全文
posted @ 2020-07-10 17:19 edda_huang 阅读(224) 评论(0) 推荐(0) 编辑
摘要:一. SpringBoot 简介 1. SpringBoot介绍 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力 阅读全文
posted @ 2020-07-10 16:30 edda_huang 阅读(261) 评论(0) 推荐(0) 编辑
摘要:服务离线,即某服务不能对外提供服务了。服务离线的原因有两种:服务下架与服务下线。这两种方案都是基于Actuator监控器实现的。 服务下架:将注册到Eureka Server中的Eureka Client从Server的注册表中移除,这样其实Client就无法发现该Client了 服务下线:Clie 阅读全文
posted @ 2020-07-09 15:13 edda_huang 阅读(331) 评论(0) 推荐(0) 编辑
摘要:一、创建提供者工程01-provider-8081 (1) 创建工程 创建一个Spring Initializr工程,并命名为01-provider-8081。导入Lombok、Web、JPA及MySQL驱动依赖 (2) pom.xml导入Druid依赖 <dependency> <groupId> 阅读全文
posted @ 2020-07-07 22:50 edda_huang 阅读(170) 评论(0) 推荐(0) 编辑
摘要:一、创建00-eurekaserver-8000 (1)创建工程 创建一个Spring Initializr工程,命名为00-eurekaserver-8000,仅导入Eureka Server依赖即可 (2)pom.xml文件如下 若你使用的是JDK6、7、8,那么这些依赖无需导入。而JDK9及其 阅读全文
posted @ 2020-07-07 22:48 edda_huang 阅读(175) 评论(0) 推荐(0) 编辑
摘要:一、简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS(AWS 是业务流程管理开发平台AWS Enterprise BPM Platform 业务流程管理开发平台)域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringClo 阅读全文
posted @ 2020-07-07 22:44 edda_huang 阅读(147) 评论(0) 推荐(0) 编辑
摘要:一、简介 打开Spring官网http://spring.io 首页的中部,可以看到Spring Cloud的简介。 【原文】Building distributed systems doesn't need to be complex and error-prone(易错). Spring Clo 阅读全文
posted @ 2020-07-07 17:01 edda_huang 阅读(388) 评论(0) 推荐(0) 编辑
摘要:一、简介 https://swagger.io/tools/swagger-ui/ Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允 阅读全文
posted @ 2020-07-07 16:58 edda_huang 阅读(207) 评论(0) 推荐(0) 编辑
摘要:一、简介 Druid是阿里开源的一个JDBC应用组件, 其包括三部分: DruidDriver: 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource: 高效可管理的数据库连接池。 SQLParser: 实用的SQL语法分析 通过Druid连接池中间 阅读全文
posted @ 2020-07-07 16:56 edda_huang 阅读(1805) 评论(0) 推荐(0) 编辑
摘要:一、简介 Turbine是聚合服务器发送事件流数据的一个工具,Hystrix的监控中,只能监控单个节点,实际生产中都为集群,因此可以通过Turbine来监控集群下Hystrix的metrics情况 Turbine的github地址:https://github.com/Netflix/Turbine 阅读全文
posted @ 2020-07-07 16:54 edda_huang 阅读(227) 评论(0) 推荐(0) 编辑
摘要:一、原生java整合elasticsearch的API地址 https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.2/java-docs.html 二、Spring Data的官网 http://projects.spring 阅读全文
posted @ 2020-07-07 16:44 edda_huang 阅读(213) 评论(0) 推荐(0) 编辑
摘要:一、 Starter工程的命名 Spring 官方定义的Starter通常命名遵循的格式为spring-boot-starter-{name},例如 spring-boot-starter-web。Spring官方建议,非官方Starter命名应遵循{name}-spring-boot-starte 阅读全文
posted @ 2020-07-07 16:42 edda_huang 阅读(164) 评论(0) 推荐(0) 编辑
摘要:Thymeleaf的官网为: http://www.thymeleaf.org/ 一、变量表达式${…} 使用${…}括起来的表达式,称为变量表达式。该表达式的内容会显示在HTML标签体文本处。 该表达式一般都是通过th:text标签属性进行展示的 处理器类 修改index页面 二、选择表达式*{… 阅读全文
posted @ 2020-07-07 16:40 edda_huang 阅读(843) 评论(0) 推荐(0) 编辑
摘要:使用Spring Boot开发较之以前的基于xml配置式的开发,要简捷方便快速的多。而这完全得益于Spring Boot的自动配置。 打开启动类的@SpringBootApplication注解源码 @SpringBootApplication注解是组合注解 (1) 元注解 前四个是专门(即只能)用 阅读全文
posted @ 2020-07-07 16:39 edda_huang 阅读(133) 评论(0) 推荐(0) 编辑
摘要:一、简介 官方文档 http://codecentric.github.io/spring-boot-admin/2.0.2/ Spring Boot Admin是一个管理和监控Spring Boot应用程序的开源软件。每个应用都认为是一个客户端,通过HTTP或者服务注册发现Spring Cloud 阅读全文
posted @ 2020-07-07 16:37 edda_huang 阅读(215) 评论(0) 推荐(0) 编辑
摘要:一、Thymeleaf简介 Thymeleaf[taɪm lif],百里香叶,是一个流行的模板引擎,该模板引擎采用Java语言开发。Java中常见的模板引擎有Velocity、Freemaker、Thymeleaf等。不同的模板引擎都会具有自己的特定的标签体系,而Thymeleaf以HTML标签为载 阅读全文
posted @ 2020-07-07 16:35 edda_huang 阅读(207) 评论(0) 推荐(0) 编辑
摘要:在Spring Boot中使用Servlet,根据Servlet注册方式的不同,有两种使用方式。若使用的是Servlet3.0+版本,则两种方式均可使用;若使用的是Servlet2.5版本,则只能使用配置类方式 一、Servlet3.0+版本方式 (1)创建工程07-servlet (2)导入依赖 阅读全文
posted @ 2020-07-07 16:34 edda_huang 阅读(249) 评论(0) 推荐(0) 编辑
摘要:Spring Boot对于原来在配置文件配置的内容,现在全部体现在一个类中,该类需要继承自WebMvcConfigurationSupport类,并使用@Configuration进行注解,表示该类为一个JavaConfig类,其充当配置文件的角色 一、定义工程 二、导入依赖 <?xml versi 阅读全文
posted @ 2020-07-07 16:32 edda_huang 阅读(125) 评论(0) 推荐(0) 编辑
摘要:一、定义工程 创建一个spring boot模块 二、修改pom文件 在pom文件中添加Spring Boot与Redis整合依赖 <dependencies> <!--spring boot与redis整合依赖--> <dependency> <groupId>org.springframewor 阅读全文
posted @ 2020-07-07 16:31 edda_huang 阅读(190) 评论(0) 推荐(0) 编辑
摘要:一、logback日志技术介绍 Spring Boot中使用的日志技术为logback。其与Log4J都出自同一人,性能要优于Log4J,是Log4J的替代者。 在Spring Boot中若要使用logback,则需要具有spring-boot-starter-logging依赖,而该依赖被spri 阅读全文
posted @ 2020-07-07 16:30 edda_huang 阅读(163) 评论(0) 推荐(0) 编辑
摘要:一、创建项目 二、添加依赖 <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!--mybatis与spring boot整合 阅读全文
posted @ 2020-07-07 16:28 edda_huang 阅读(179) 评论(0) 推荐(0) 编辑
摘要:一、步骤 导入依赖:MySQL驱动、Druid依赖、MyBatis与Spring Boot整合依赖、Lombok依赖 在Service接口实现类上添加@Service注解 在Dao接口上添加@Mapper注解 在pom中将dao目录注册为资源目录 在配置文件中注册映射文件、实体类别名,及数据源 二、 阅读全文
posted @ 2020-07-07 16:27 edda_huang 阅读(237) 评论(0) 推荐(0) 编辑
摘要:一、创建webapp目录 在src/main下创建webapp目录,用于存放jsp文件。这就是一个普通的目录,无需执行Mark Directory As 二、创建jsp 1、指定web资源目录 在spring boot工程中若要创建jsp文件,一般是需要在src/main下创建webapp目录,然后 阅读全文
posted @ 2020-07-07 16:25 edda_huang 阅读(1142) 评论(0) 推荐(0) 编辑
摘要:目录 一、自定义异常页面 二、单元测试 ​三、多环境选择 四、读取主配置文件中的属性 五、读取List属性 一、自定义异常页面 对于404、405、500等异常状态,服务器会给出默认的异常页面,而这些异常页面一般都是英文的,且非常不友好。我们可以通过简单的方式使用自定义异常页面,并将默认状态码页面进 阅读全文
posted @ 2020-07-07 16:24 edda_huang 阅读(153) 评论(0) 推荐(0) 编辑
摘要:一、简介 Actuator(激励者;执行器)是Spring Boot提供的一个可挺拔模块,用于对工程进行监控。其通过不同的监控终端实现不同的监控功能。其功能与Dubbo的监控中心类似,不同的是,Dubbo的监控中心是需要专门部署的,而Spring Boot的Actuator是存在于每一个工程中的。 阅读全文
posted @ 2020-07-07 16:23 edda_huang 阅读(183) 评论(0) 推荐(0) 编辑
摘要:一、简介 前面创建的Spring Boot工程最终被打为了Jar包,是以可执行文件的形式出现的,其使用了Spring Boot内嵌的Tomcat作为Web服务器来运行web应用的。新版Dubbo的监控中心工程就是典型的应用。 但在实际生产环境下,对于访问量不大的应用,直接以Jar包的形式出现,使用起 阅读全文
posted @ 2020-07-07 16:19 edda_huang 阅读(136) 评论(0) 推荐(0) 编辑
摘要:一、Spring Boot简介 Spring Boot是由Pivotal[ˈpɪvətl]团队(一家做大数据的公司)提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Bo 阅读全文
posted @ 2020-07-07 16:18 edda_huang 阅读(174) 评论(0) 推荐(0) 编辑
摘要:一、zkCli.sh ./zkCli.sh -server 39.97.176.160:2182 39.97.176.160 : zookeeper服务器Ip 2182:zookeeper端口 二、ZooInspector 下载地址:https://issues.apache.org/jira/se 阅读全文
posted @ 2020-07-07 14:32 edda_huang 阅读(1309) 评论(0) 推荐(0) 编辑
摘要:一、官网 https://zookeeper.apache.org/ 二、下载安装 (1)下载 复制链接地址 http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz linux中执行 wge 阅读全文
posted @ 2020-07-07 14:26 edda_huang 阅读(148) 评论(0) 推荐(0) 编辑
摘要:一、官网 https://zookeeper.apache.org/ 二、简介 Apache ZooKeeper致力于开发和维护开源服务器,实现高度可靠的分布式协调。 ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。所有这些类型的服务都以分布式应用程序的某种形 阅读全文
posted @ 2020-07-07 14:23 edda_huang 阅读(331) 评论(0) 推荐(0) 编辑
摘要:一、简介 ZAB ,Zookeeper Atomic Broadcast,zk原子消息广播协议,是专为ZooKeeper设计的一种支持崩溃恢复的原子广播协议,在 Zookeeper中,主要依赖 ZAB 协议来实现分布式数据一致性。 Zookeeper使用一个单一主进程来接收并处理客户端的所有事务请求 阅读全文
posted @ 2020-07-07 14:22 edda_huang 阅读(224) 评论(0) 推荐(0) 编辑
摘要:一、简介 Paxos算法是莱斯利·兰伯特(Leslie Lamport)1990年提出的一种基于消息传递的、具有高容错性的一致性算法。Google Chubby的作者Mike Burrows说过,世上只有一种一致性算法,那就是Paxos,所有其他一致性算法都是Paxos算法的不完整版。Paxos算法 阅读全文
posted @ 2020-07-07 14:20 edda_huang 阅读(181) 评论(0) 推荐(0) 编辑
摘要:一、简介 ZooKeeper由雅虎研究院开发,后来捐赠给了Apache。ZooKeeper是一个开源的分布式应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于Paxos算法的ZAB协议完成的。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。 zookeeper的官网: 阅读全文
posted @ 2020-07-07 14:16 edda_huang 阅读(301) 评论(0) 推荐(0) 编辑
摘要:高并发下Redis会出现的问题: 缓存穿透 缓存雪崩 热点缓存 一、定义commons工程11-dubboCommons (1) 创建工程 创建Maven的Java工程,并命名为11-dubboCommons (2) 定义pom文件 <groupId>com.abc</groupId><artifa 阅读全文
posted @ 2020-07-07 14:03 edda_huang 阅读(1476) 评论(0) 推荐(0) 编辑
摘要:从前面“对提供者的异步调用”例子可以看出,消费者对提供者实现了异步调用,消费者线程的执行过程不再发生阻塞,但提供者对IO耗时操作仍采用的是同步调用,即IO操作仍会阻塞Dubbo的提供者线程。 但需要注意,提供者对IO操作的异步调用,并不会提升RPC响应速度,因为耗时操作终归是需要消耗那么多时间后才能 阅读全文
posted @ 2020-07-07 14:02 edda_huang 阅读(239) 评论(0) 推荐(0) 编辑
摘要:使用Future实现异步调用,对于无需获取返回值的操作来说不存在问题,但消费者若需要获取到最终的异步执行结果,则会出现问题:消费者在使用Future的get()方法获取返回值时被阻塞。为了解决这个问题,Dubbo又引入了CompletableFuture来实现对提供者的异步调用 一、创建提供者10- 阅读全文
posted @ 2020-07-07 14:01 edda_huang 阅读(966) 评论(0) 推荐(0) 编辑
摘要:Dubbo的四大组件工作原理图,其中消费者调用提供者采用的是同步调用方式。消费者对于提供者的调用,也可以采用异步方式进行调用。异步调用一般应用于提供者提供的是耗时性IO服务 一、Future异步执行原理 黑色同步调用,而红色为异步调用 UserThread:消费者线程 IOThrea:提供者线程 S 阅读全文
posted @ 2020-07-07 13:59 edda_huang 阅读(557) 评论(0) 推荐(0) 编辑
摘要:Dubbo的四大组件工作原理图,其中消费者调用提供者采用的是同步调用方式。消费者对于提供者的调用,也可以采用异步方式进行调用。异步调用一般应用于提供者提供的是耗时性IO服务 一、Future异步执行原理 黑色同步调用,而红色为异步调用 UserThread:消费者线程 IOThrea:提供者线程 S 阅读全文
posted @ 2020-07-07 13:57 edda_huang 阅读(155) 评论(0) 推荐(0) 编辑
摘要:Dubbo 2.6.5 版本以后,如果我们的服务启动过程需要warmup事件,就可以使用delay进行服务延迟暴露。只需在服务提供者的<dubbo:service/>标签中添加delay属性。其值可以有三类 正数:单位为毫秒,表示在提供者对象创建完毕后的指定时间后再发布服务。 0:默认值,表示当前提 阅读全文
posted @ 2020-07-07 13:52 edda_huang 阅读(474) 评论(0) 推荐(0) 编辑
摘要:一、创建提供者08-provider-registers (1) 创建工程 直接复制05-provider-group工程,并命名为08-provider-registers (2) 修改配置文件 二、创建消费者08-consumer-registers (1) 创建工程 直接复制05-consum 阅读全文
posted @ 2020-07-07 13:49 edda_huang 阅读(339) 评论(0) 推荐(0) 编辑
摘要:为了进一步提高消费者对用户的响应速度,减轻提供者的压力,Dubbo提供了基于结果的声明式缓存。该缓存是基于消费者端的,所以使用很简单,只需修改消费者配置文件,与提供者无关 一、创建消费者07-consumer-cache (1) 创建工程 直接复制02-consumer-zk工程,并命名为07-co 阅读全文
posted @ 2020-07-07 13:37 edda_huang 阅读(316) 评论(0) 推荐(0) 编辑
摘要:为了防止某个消费者的QPS或是所有消费者的QPS总和突然飙升而导致的重要服务的失效,系统可以对访问流量进行控制,这种对集群的保护措施称为服务限流。 Dubbo中能够实现服务限流的方式较多,可以划分为两类:直接限流与间接限流 直接限流:通过对连接数量直接进行限制来达到限流的目的。(官方方案汇总) 间接 阅读全文
posted @ 2020-07-07 13:33 edda_huang 阅读(786) 评论(0) 推荐(0) 编辑
摘要:服务降级的发生,其实是由于消费者调用服务超时引起的,即从发出调用请求到获取到提供者的响应结果这个时间超出了设定的时限。默认服务调用超时时限为1秒。可以在消费者端与提供者端设置超时时限。 一、创建提供者工程06-provider-timeout (1) 创建工程 复制02-provider-zk工程, 阅读全文
posted @ 2020-07-07 13:26 edda_huang 阅读(1082) 评论(0) 推荐(0) 编辑
摘要:一、简介 解决高并发的三把利器:降级、限流、缓存 (1) 什么是服务降级 服务降级,当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务有策略的降低服务级别,以释放服务器资源,保证核心任务的正常运行 (2) 服务降级方式 能够实现服务降级方式很多,常见的有如下几种情况: 部分服务暂停 全部服务 阅读全文
posted @ 2020-07-07 13:24 edda_huang 阅读(3001) 评论(0) 推荐(0) 编辑
摘要:集群容错指的是,当消费者调用提供者集群时发生异常的处理方案 一、Dubbo内置的容错策略 (1) Failover 故障转移策略。当消费者调用提供者集群中的某个服务器失败时,其会自动尝试着调用其它服务器。该策略通常用于读操作,例如,消费者要通过提供者从DB中读取某数据。但重试会带来服务延迟 (2) 阅读全文
posted @ 2020-07-07 13:00 edda_huang 阅读(209) 评论(0) 推荐(1) 编辑
摘要:一、搭建负载均衡环境 两个提供者,一个消费者 二、创建提供者 (1) 创建提供者02-provider-zk01 A、创建工程 复制前面的02-provider-zk工程,并重命名为02-provider-zk01 B、 修改配置文件 C、修改Service实现类 (2) 创建提供者02-provi 阅读全文
posted @ 2020-07-07 12:59 edda_huang 阅读(231) 评论(0) 推荐(0) 编辑
摘要:除了Dubbo服务暴露协议Dubbo协议外,Dubbo框架还支持另外8种服务暴露协议:RMI协议、Hessian协议、HTTP协议、WebService协议、Thrift协议、Memcached协议、Redis协议、Rest协议。但在实际生产中,使用最多的就是Dubbo服务暴露协议 (1) dubb 阅读全文
posted @ 2020-07-07 11:47 edda_huang 阅读(415) 评论(0) 推荐(0) 编辑
摘要:服务分组与多版本控制的使用方式几乎是相同的,只要将version替换为group即可。但使用目的不同。使用版本控制的目的是为了升级,将原有老版本替换掉,将来不再提供老版本的服务,所以不同版本间不能出现相互调用。而分组的目的则不同,其也是针对相同接口,给出了多种实现类。但不同的是,这些不同实现并没有谁 阅读全文
posted @ 2020-07-07 11:45 edda_huang 阅读(1829) 评论(0) 推荐(0) 编辑
摘要:当系统进行升级时,一般都是采用“灰度发布(又称为金丝雀发布)”过程。即在低压力时段,让部分消费者先调用新的提供者实现类,其余的仍然调用老的实现类,在新的实现类运行没有问题的情况下,逐步让所有消费者全部调用成新的实现类。多版本控制就是实现灰度发布的 一、创建提供者04-provider-version 阅读全文
posted @ 2020-07-07 11:39 edda_huang 阅读(813) 评论(0) 推荐(0) 编辑
摘要:2019年初,官方发布了Dubbo管理控制台0.1版本。结构上采取了前后端分离的方式,前端使用Vue和Vuetify分别作为Javascript框架和UI框架,后端采用Spring Boot框架 一、下载 Dubbo管理控制台的下载地址为:https://github.com/apache/dubb 阅读全文
posted @ 2020-07-07 11:37 edda_huang 阅读(332) 评论(0) 推荐(0) 编辑
摘要:一、创建提供者03-provider-web (1) 创建工程 创建Maven的web工程,然后创建实现类。 (2) 导入依赖 Spring的版本为4.3.16 需要的依赖有: dubbo2.7.0版本依赖 zk客户端curator依赖 servlet与jsp依赖 spring相关依赖 spring 阅读全文
posted @ 2020-07-07 11:33 edda_huang 阅读(244) 评论(0) 推荐(0) 编辑
摘要:在生产环境下使用最多的注册中心为Zookeeper,当然,Redis也可以做注册中心 一、创建提供者02-provider-zk (1) 导入依赖 https://blog.csdn.net/u012965203/article/details/96700308 复制前面的提供者工程01-provi 阅读全文
posted @ 2020-07-07 11:20 edda_huang 阅读(450) 评论(0) 推荐(0) 编辑
摘要:一、简介 官网:http://dubbo.apache.org/zh-cn/ Dubbo是 [1] 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 [2] Spring框架无缝集成。 Dubbo是一款高性能、轻量级的开源Java RPC框 阅读全文
posted @ 2020-07-07 11:10 edda_huang 阅读(967) 评论(0) 推荐(0) 编辑
摘要:一、简介 Dubbo官网为http://dubbo.apache.org/zh-cn/。该官网是Dubbo正式进入Apache开源孵化器后改的 Dubbo原官网为:http://dubbo.io 二、RPC RPC(Remote Procedure Call Protocol)——远程过程调用协议, 阅读全文
posted @ 2020-07-07 10:31 edda_huang 阅读(274) 评论(0) 推荐(0) 编辑
摘要:Java 8十个lambda表达式案例 1. 实现Runnable线程案例 使用() -> {} 替代匿名类: //Before Java 8: new Thread(new Runnable() { @Override public void run() { System.out.println( 阅读全文
posted @ 2020-07-06 23:25 edda_huang 阅读(539) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/chenyanbin/p/12199575.html 导读# Apache Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力;面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 dubbo官网:点我直达 阅读全文
posted @ 2020-07-03 11:22 edda_huang 阅读(298) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示