- 博客(51)
- 收藏
- 关注
原创 服务降级、服务熔断、服务限流的区别
服务降级 fallback概念:服务器繁忙,请稍后重试,不让客户端等待并立即返回一个友好的提示。fallback出现服务降级的情况:程序运行异常超时服务熔断触发服务降级线程池/信号量打满也会导致服务降级服务熔断 break概念: 类比 保险丝,达到最大访问后,直接拒绝访问,拉闸限电,然后调用服务降级的方法并返回友好的提示。服务限流 flowlimit概念: ...
2021-01-04 16:38:00
1409
原创 Spring的AOP深入理解
AOP底层原理1、AOP底层使用动态代理(两种情况)第一种:有接口的情况,使用JDK动态代理使用JDK动态代理,使用Proxy类里面的方法创建代理对象调用 newProxyInstance 方法static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, Inv...
2020-08-24 17:20:00
221
原创 枚举和注解学习笔记
1、枚举的概念枚举是一个引用类型,枚举是一个规定了取值范围的数据类型。枚举变量不能使用其他的数据,只能使用枚举中常量赋值,提高程序安全性。定义枚举使用enum关键字2、枚举的本质枚举是一个终止类,并集成Enum抽象类。枚举汇总常量是当前类型的静态常量。3、注解3.1 什么是注解注解(Annotation)是代码里的特殊标记,程序可以读取注解,一般用于替代配置...
2020-08-18 16:13:00
168
原创 单例模式
什么是设计模式一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。简单理解:特定问题的固定解决方法。好处:使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、重用性。单例模式单例(Singleton):只允许创建一个该类的对象。饿汉式类加载的时候创建,天生线程安全。优点:线程安全缺点:生命周期太长,浪费空间package c...
2020-08-18 01:24:00
83
原创 工厂设计模式
什么是设计模式一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。简单理解:特定问题的固定解决方法。好处:使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、重用性。工厂设计模式工厂模式主要负责对象创建的问题。开发中有一个非常重要的原则 “开闭原则”,对拓展开放,对修改关闭。可通过反射进行工厂模式的设计,完成动态的对象创建。工厂类...
2020-08-18 01:23:00
95
原创 反射笔记
1、什么是类对象类的对象:基于某个类 new 出来的对象,也称为实例对象。类对象:类加载的产物,封装了一个类的所有信息(类名、父类、接口、属性、方法、构造方法)每个类加载到内存后都对应一个 Class对象每个类有且只有一个Class对象2、获取类对象1、通过类的对象,获取类对象Student s = new Student();Class c = s.getC...
2020-08-18 00:14:00
87
原创 网络编程
1、InetAddress类概念表示互联网协议(IP)地址对象,封装了与该IP地址相关的所有信息,并提供获取信息的常用方法。方法// 获得本地 主机地址对象public static InetAddress getLoclHost()// 根据主机名称获得地址对象public static InetAddress getByName(String host)//...
2020-08-16 19:15:00
129
原创 多线程笔记
1、什么是进程应用程序进程:正在运行的程序。2、什么是线程线程:又称 轻量级进程(Light Weight Process)。进程中的一条执行路径,也是CPU的基本调度单位。一个进程由一个或多个线程组成,彼此间完成不同的工作,同时执行,称为多线程。3、进程和线程的区别进程是操作系统资源分配的基本单位,而线程是CPU的基本调度单位。一个程序运行后至少有一个进程。...
2020-08-16 00:39:00
126
原创 Docker 学习笔记
Docker 安装Docker的基本组成镜像(images)docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像 ==> run ==> tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。容器(container)Docker 利用容器技术,独立运行一个或者一个组应用,通过镜像...
2020-08-09 17:46:00
800
原创 ElasticSearch笔记
Lucene 和 ElasticSearch 关系:ElasticSearch 是基于 Lucene 做了一些封装和增强。ElasticSearch 概述ElasticSearch,简称为es,es是一个开源的 高扩展 的 分布式全文检索引擎,它可以近乎 实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用java并发使用 ...
2020-08-05 19:34:00
454
1
原创 Redis笔记
Nosql概述1、单机MySQL的年代!1、 数据量如果太大,一个机器就放不下了!2、数据的索引(B + Tree) 超过300万就一定要建立索引3、访问量(读写混合),一个服务器承受不了~2、Memcached(缓存)+ MySQL + 垂直拆分(读写分离)网站80%都是读操作,每次都要去查询数据库的话就十分麻烦!希望减轻服务器的压力,可以使用缓存来保证效率!发...
2020-08-03 22:28:00
314
原创 Mybatis-Plus
1、概述简介是什么? Mybatis本来就是简化 JDBC操作的!官网:https://mp.baomidou.com/ Mybatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注...
2020-08-02 00:11:00
252
原创 设计模式
1、设计模式1.1 设计模式的目的编写软件过程中,程序员面临着来自 耦合性,内聚性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让 程序(软件),具有更好代码重用性(即:相同功能的代码,不用多次编写)可读性(即:编程规范性,便于其他程序员的阅读和理解)可扩展性(即:当需要增加新的功能时,非常的方便,称为可维护)可靠性(即:当我们增加新的功能...
2020-07-25 22:42:00
430
原创 使用docker部署springboot项目
1、Docker在安装docker前,先安装docker的包sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2配置docker的仓库,从docker官方仓库下载会太慢,我们就将仓库配置到阿里云(类似于maven的仓库配置)sudo yum-config-manager \ ...
2020-07-19 00:21:00
1087
原创 Redis在Linux上安装步骤
1、官网下载redis-5.0.5.tar.gz压缩包2、安装gcc和gc-c++yum install gccyum install gc-c++3、将redis-5.0.5.tar.gz上传到/opt文件夹下4、运行 tar -zxvf redis-5.0.5.tar.gz 进行解压5、解压之后,进入解压之后的文件夹redis-5.0.5,运行make,进行编译6、...
2020-07-08 22:15:00
94
原创 JVM(JAVA虚拟机)
类装载器ClassLoader负责加载class文件,class文件在文件开头有特定的文件标示,将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定双亲委派当一个类收到了类加载请求,它首先不会尝试自己去加载这个类,而是把这个请求委...
2020-06-16 01:20:00
87
原创 微服务
微服务化的核心将传统的一站式应用,根据业务拆分为一个一个的服务,彻底的去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事情,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库。微服务强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用,狭义的看,maven开发的一个个独立的小moudl...
2020-06-12 18:45:00
78
原创 RabbitMQ是什么
1、引入MQ1.1什么是MQ MQ(Message Quene):翻译为 消息队列,通过典型的 生产者 和 消费者 模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间的解耦。别名为 消息中间件 通过利用高效可靠的消息传递机制进行平台无关的数据交流,并给予数据通信来进行分...
2020-06-11 14:33:00
136
原创 SpringCloud
概念Spring Cloud是一个分布式的整体解决方案。Spring Coud为开发者提供了 在分布式系统(配置管理,服务发现,熔断,路由,为代理,控制总线,一次性tokeb,全局锁,leader选举,分布式session,集群状态)中快速构建的工具,使Spring Cloud的开发者 可以快速的启动服务或构建应用,同时能够快速和云平台资源进行对接。SpringCloud分布式开发五...
2020-06-10 19:07:00
74
原创 SpringBoot整合分布式ZooKeeper和Dubbo
ZooKeeperZooKeeper是一个分布式的,开放远吗的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。服务消费者(Consumer):调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅...
2020-06-10 16:29:00
138
原创 SpringBoot与(Security)安全
1.简介应用程序的两个主要区域认证(Authentication):是建立一个它声明的主体的过程(一个“主体” 一般是指用户,设备或一些可以在你的应用程序中执行动作的其他系统)证明用户的身份,当用户登录之后,系统来查验用户名和密码,以此来证明你有对应身份,这个过程就是认证。授权 (Authorization)指确定一个主体是否允许在你的应用程序执行一个动作的过程。为了抵达需要...
2020-06-09 19:12:00
90
原创 SpringBoot任务
异步任务:在方法上添加@Async注解 表明这个方法是一个异步的方法package com.king.service;import org.springframework.scheduling.annotation.Async;import org.springframework.stereotype.Service;@Servicepublic class As...
2020-06-09 16:29:00
77
原创 SSM框架整合思路
步骤:A:准备工作创建好数据库导入pom依赖 lombok,mysql,mybatis,mybatis-spring,spring-webmvc,junit,druid,servlet-api,jstl,spring-jdbc,aspectweaver导入maven资源过滤创建 包文件 controller、dao、pojo、service 创建配置文件 applica...
2020-06-08 19:26:00
91
原创 数据库连接池 Druid和C3p0
datasource.properties数据源#数据源 datasource.peopertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf8&...
2020-06-08 18:00:00
56
原创 YAML语法:
1、基本语法k:(空格)v:表示一对键值对(空格必须有);以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的server: port: 8081 path: /hello属性和值也是大小写敏感;2、值的写法字面量:普通的值(数字,字符串,布尔) k: v:字面直接来写; 字符串默认不用加上单引号或者双引号; "":双引号;不会...
2020-06-05 17:04:00
104
原创 Mbatis使用
Mybatis的搭建过程导入jar创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ...
2020-06-05 16:42:00
159
原创 为什么要使用Mybatis-现有持久化技术的对比
1)JDBCSQL 夹在Java代码块里,耦合度高导致硬编码内伤维护不易且实际开发需求中SQL有变化,频繁修改的情况很多2)Hibernate 和 JPA长难复杂SQL, 对于Hibernate 而言处理也不容易内部自动生产的SQL,不容易做特殊优化基于全映射的全自动框架,大量字段的POJO 进行部分映射时,比较困难。导致数据库性能下降3) Mybatis对于开...
2020-06-05 16:31:00
224
原创 SpringMVC拦截器
自定义拦截器SpringMVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器可以实现 HandlerInterceptor 接口,也可以继承 HandlerceptorAdater 适配器类preHandle(): 这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求的request进行处理。如果程序员决定该拦截器对请求进行拦截处理...
2020-06-05 16:25:00
77
原创 SpringMVC下载文件
import org.junit.Test;import org.springframework.http.HttpHeaders;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import javax.servlet.http.HttpSess...
2020-06-02 19:50:00
51
原创 SpringMVC处理json的四个步骤
导入相关的pom依赖在springMVC的配置文件中开启MVC驱动,<mvc:annotation-driven />在处理ajax请求的方法上加上注解@ResponseBody将要转换为json且响应到客户端的数据,直接作为该方法的返回值返回...
2020-06-02 19:33:00
98
原创 在SpringMVC获取客户端传递的数据的方式
在处理请求的方法中,加入相对应的形参,保证形参参数名和传递的数据的参数名保持一致,就能够自动赋值value:当不满足赋值条件时,可以使用value属性,指定映射关系required:设置形参是否必须被赋值,默认为true,必须赋值,如果设置false,则不必赋值,因此形参的值为nulldefaultValue:若形参所获得的值为null,则设置一个默认值。用在分页和模糊查询中...
2020-06-02 19:29:00
152
原创 @RequestMAPPPING映射请求占位符@PathVariable注解
@PathVariable:通过@PathVariable 可以将URL 中占位符参数绑定到控制器处理方法的入参中URL中的{xxx} 占位符可以通过 @PathVariable{"xxx"} 绑定到操作方法的入参中@RequestMapping(value = "/h1/{id}")public String h1(@PathVariable("id") Integer id){...
2020-06-02 19:24:00
287
1
原创 SpringMVC中的@RequestMapping注解
@RequestMapping:设置请求映射,把请求和控制层中的方法设置映射关系属性:当请求路径和@RequestMapping的value属性一致时,则该注解所标注的方法即为处理请求的方法method:用来设置请求方式,只有客户端发送请求的方式和method的值一致,才能处理请求请求方式:GET 查询 POST 添加 PUT 修改 DELETE 删除para...
2020-06-02 19:15:00
70
原创 Spring:扫描组件
<context:component-scan>:扫描组件,对设置的包下面的类进行扫描,会讲加上注解的类作为Spring的组件进行加载组件:指Spring中管理的bean 作为Spring的组件进行加载:会自动在Spring的配置文件中生成相对应的bean,这些bean的id会以类的首字母小写为值<context:include-filter>:在设定...
2020-05-31 18:59:00
145
原创 Spting:基于注解的组件化管理
@Component,@Controller(控制层),@Service(业务层),@Repository(持久层)以上四个注解的功能完全相同,不过在实际开发中,要在不同功能的类上加上响应的注解1、完成组件化管理的过程在需要被Spring管理的类上加上响应的注解在配置文件中通过<context:component-scan>对所设置的包结构进行扫描,就会讲加上注解的...
2020-05-31 18:50:00
84
原创 Spring导入外部资源
创建一个数据库连接的 propertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/ssmbuild?serverTimezone=Asia/Shanghai&useSSL=true&useUnicode=true&characterEncoding=utf8...
2020-05-31 15:10:00
156
原创 SSM框架整合以及书籍管理CRUD系统
1.基本环境搭建1、新建一Maven项目!ssmbuild , 添加web的支持2、导入相关的pom依赖!<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20...
2020-05-24 23:27:00
170
1
原创 FastJson将Java对象转换成json
确保环境依赖都配置好!1.在pom.xml导入依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.60<...
2020-05-24 18:19:00
1919
原创 利用Jackson将数据转换为Json
1.确保相关依赖导入2.配置web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...
2020-05-24 17:44:00
522
原创 Jackson乱码问题
在配置文件中加入下面的内容<!-- Json乱码问题配置--> <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.co...
2020-05-24 17:38:00
266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人