笔记
文章平均质量分 52
穿着红色卫衣的程序猿
IT小白
展开
-
spring微服务------------分布式事务-------------Seata AT事务方案
一、 业务场景(订单系统)订单系统保存订单订单系统调用库存服务,减少商品库存订单系统调用账户服务,扣减用户金额二、Seata AT基本原理Seata AT 事务分两个阶段来管理全局事务:第一阶段: 执行各分支事务第二阶段: 控制全局事务最终提交或回滚1. 第一阶段:执行各分支事务(1. 事务协调器:协调各个服务的运行状态。这个服务称为 TC(Transaction Coordinator)。(2. 订单系统开始执行,保存订单之前,首先启动 TM(Transaction Mana原创 2021-09-26 10:11:08 · 160 阅读 · 0 评论 -
三级联查实现
需求:查询3级商品分类信息请求路径: /itemCat/findItemCatList/{level}请求类型: get请求参数: level业务说明: 查询3级分类菜单数据 要求三层结构嵌套返回值: SysResult对象pom文件<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-pare原创 2021-09-06 22:29:10 · 10552 阅读 · 0 评论 -
全局异常处理和全局过滤器处理
一. 全局异常处理Spring框架中web模块定义了一套全局异常处理规范,基于这个套规范处理Controller中抛出的异常package com.jt.advice;/** @RestControllerAdvice 注解描述的类为全局异常处理类,启动时会交给spring管理*/@RestControllerAdvicepublic class GlobalExceptionHandler { private static final Logger log=LoggerFact原创 2021-08-28 11:29:16 · 693 阅读 · 0 评论 -
微服务架构Sentinel,限流,熔断(降级),异常重写
一. Sentinel概述是一个流量控制平台,它以流量为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。二. 使用流程1. 安装(https://github.com/alibaba/Sentinel/releases),下载jar包2. 在sentinel对应目录,打开命令行(cmd),启动运行sentineljava -Dserver.port=8180 -Dcsp.sentinel.dashboard.server=localhost:8180 -Dproject.原创 2021-08-20 19:53:27 · 735 阅读 · 0 评论 -
微服务Nacos\LoadBalancerClient\R
一. 先要一个服务的管理平台Nacos(注册,发现,配置)1.解压nacos或下载(https://github.com/alibaba/nacos/releases)(版本1.4.1)2.在数据库执行config文件中nacos-mysql.sql脚本(脚本可能不带创建库)3.打开/conf/application.properties文件,配置数据源和数据库4.windows打开Nacosstartup.cmd -m standalone(要么bin目录cmd,要么配置环境变量)5.local原创 2021-08-19 20:44:47 · 1030 阅读 · 1 评论 -
上传文件照片后端详情
package com.jt.service;import com.jt.vo.ImageVO;import org.springframework.stereotype.Service;import org.springframework.web.multipart.MultipartFile;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;import java.i原创 2021-08-10 18:47:17 · 74 阅读 · 0 评论 -
查询三级目录和删除三级目录业务后端详情
package com.jt.service;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.jt.mapper.ItemCatMapper;import com.jt.pojo.ItemCat;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotyp原创 2021-08-10 18:45:26 · 644 阅读 · 0 评论 -
Spring处理全局异常的机制(将后台运行异常报错提示到前端)/事务回滚
全路径:com.jt.advice.MyExceptionAdvicepackage com.jt.advice;import com.jt.vo.SysResult;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotation.RestControllerAdvice;/** * 处理全局异常的机制 * Spring为了整合全局原创 2021-08-08 15:06:57 · 459 阅读 · 0 评论 -
MyBatis-Plus的分页配置类
路径:com.jt.config.MyBatisPlusConfigpackage com.jt.config;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerI原创 2021-08-08 10:57:33 · 520 阅读 · 0 评论 -
MyBatis-Plus的日期自动填充实现类配置
实现类名:MetaObjectHandler全路径:com.jt.config.MyMetaObjectHandlerpackage com.jt.config;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;import org.apache.ibatis.reflection.MetaObject;import org.springframework.stereotype.Component;import j原创 2021-08-08 10:54:06 · 117 阅读 · 0 评论 -
application.yml文件
#SpringBoot配置mysql信息spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql:///jt?useUnicode=true&characterEncoding=utf8&useSSL=false username: root password: root#SpringBoot整合Mybatis配置mybatis: #指定UserMap原创 2021-07-22 20:08:29 · 98 阅读 · 0 评论 -
POM文件
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.2</version> <relativePath/> <!-- lookup parent from re.原创 2021-07-22 17:11:52 · 112 阅读 · 0 评论 -
完整整合Spring、Mybatis后端框架,通过controller层手动接收调用service层调用dao层再执行sql返回结果
1.新建一个model(启动类写dao层包扫描)2.配置pom文件,加入依赖<dependencies> <!--mybatis依赖包--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifa原创 2021-07-20 20:03:59 · 1054 阅读 · 2 评论 -
通过配置mybatis-config.xml,创建session会话,来整合spring和mybatis框架,并通过单元测试测试
新建一个maven工程,不使用接口的测试。1.配置pom文件,加入jdbc和mybatis的jar包<dependencies> <!--mybatis依赖包--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId&原创 2021-07-20 19:18:14 · 109 阅读 · 0 评论 -
Vue脚手架搭建和创建Vue项目
一、搭建Vue环境1)验证nodejs是否安装好在选中的文件中,输入cmd进入命令框进行验证node -v2)把npm换到国外中央仓库,换镜像:阿里淘宝nodejs中含有npm,输入以下代码npm config set registry https://registry.npm.taobao.org验证是否更改镜像npm config get registry3)安装vue脚手架(地基)接着在命令框输入npm install vue-cli -ginstall安装,vue-cli(v原创 2021-04-28 18:06:16 · 409 阅读 · 4 评论 -
小白的前端总结
1.首先是html,用来写前端页面的内容2.其次用bootstrap来直接渲染页面或者饿了么element-ui;也就是开发好的一整套css<link rel="stylesheet" href="css/bootstrap.min.css" />3.js语言是要简单学习的,因为js衍生出了ajax进行前后端的交互,它负责把页面请求发送给后端java;因为js衍生json,替代了xml(极大的萎缩),json是字符串的形式。方便获取;因为js中衍生出了DOM树,根据扫描(从上到下遍历htm原创 2021-04-26 19:05:11 · 202 阅读 · 0 评论 -
Jquery中Ajax和bootstrap的前端分页详写
一、1.进入https://v3.bootcss.com/的基本模板中粘贴Bootstrap 页面原创 2021-03-31 15:20:54 · 612 阅读 · 0 评论 -
可变参数的使用
一、可变参数特征1.可变参数只能应用于方法参数的最后一个参数2.可变参数可以理解为一个数组3.为了优化数组方式的传值,同时简化参数类型相同,参数个数不同的一些重载方法的求和public class VarParamTests { // static int sum(int a,int b){// return a+b;// }// static int sum(int a,int b,int c){// return a+b+c;//原创 2021-03-09 14:09:51 · 393 阅读 · 0 评论 -
HiKariCP的取代之路
为何要使用HiKariCP?这要先从BoneCP说起:原本有C3P0/DBCP这些成熟的数据库连接池,一直用的好好的,为什么又搞出一个BoneCP来?因为,传说中BoneCP在快速这个特点上做到了极致,官方数据是C3P0等的25倍左右。HiKariCP是光的意思,作者可能是日本人,用光来表示cp速度之快。HiKariCP的特征:快速、简单、可靠。特点1.字节码精简:优化代码,直到编译后的字节码最少,这样,CPU缓存可以加载更多的程序代码;2.优化代理和拦截器:减少代码,例如HikariCP的St原创 2021-02-20 10:19:57 · 91 阅读 · 0 评论 -
我的异常总结
一、Maven中1. 插件问题2. 依赖下载问题二、SpringBoot中1. 网络问题2. 启动类2.1 @SpringBootConfiguration2.2 Multipl @SpringBootConfiguration3.连接池3.1 ‘url’ attribute3.2 CommunicationException3.3 Access Denied4. MyBatis4.1 SqlSyntaxErrorException4.2 BindingExce原创 2021-01-28 14:10:33 · 49 阅读 · 1 评论 -
加强反射和springboot整合项目的理解、MyBatis取代jdbc的使用步骤
一、反射Reflect API反射的起点(Class类型的对象)通过反射来操作字节码对象Constructor(构造) newInstance(实例化构造对象)Field (属性) 可能有getXxx、setXxxMethod(方法) invoke(执行方法) getAnnotation(获取方法上的注解等)1.优势/劣势灵活,不能预知未来,但能驾驭未来/性能有一定的损耗2.场景构建框架,实现编程的复用3.具体应用1)获取构造方法,对象基于构造方法对象,构建类的实例对象2)获原创 2021-01-27 19:13:02 · 238 阅读 · 0 评论 -
IDEA中使用Git
一、Git配置1.下载安装gitWindows和Mac系统, 可以直接从 http://git-scm.com/downloads2.全局用户信息配置配置用户和密码$ git config --global user.name "your-name"$ git config --global user.email "your-email@youremail.com"检查配置信息$ git config --list二、idea配置git1.打开Setting中的Plugins选项,然原创 2021-01-25 17:18:34 · 223 阅读 · 0 评论 -
Spring业务层和Mybatis数据库框架的使用
一、Spring1.是业务层1.对数据处理,需要对象,以前是自己new对象,管理对象,可以把对象放在list或map中2.是ioc容器,ioc容器提供了一个hashMap2.基本注解使用@autowired spring容器会从ioc中取一个对象赋值给userService@component组件,controller和service都是component@scope生命周期有三种singleton、prototype、session@Service业务层实现类前要加,告诉spri原创 2021-01-19 00:27:44 · 575 阅读 · 0 评论 -
Maven和Tomcat的配置
一、Maven的使用1.maven基本配置1.解压maven,修改conf/setting,xml中的localRepository仓库路径,选择自己的一个本地仓库路径,之后加载的jar放一起更方便使用。2.设置环境变量path,把maven/bin目录加入到系统环境变量path中3.检查安装是否正确: mvn -version4.在eclipse中设置jdk:Windows->preferences5.在preferences中设置maven2.手动创建maven项目1.前原创 2021-01-17 22:06:51 · 927 阅读 · 0 评论 -
bootstrap样式的链接、js中DOM的使用、jQuery的取代js的DOM、解析json的字符串、Ajax向网站的访问获取返回封装和展示
一、bootstrap的使用1.概念bootstrap3就是一堆样式定义,事先定义很多漂亮的风格2.通过link标签引入bootstrap<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">一般在HBuilderX里创一个css目录,将bootstrap内容复制到bootstrap.min.css更方便简洁.min,压缩文件,原创 2021-01-08 23:07:03 · 508 阅读 · 0 评论 -
HbuilderX 静态常规操作 快忘快看
一、HbuilderX的静态使用自动缩进快捷键:Ctrl+K1.style里的常用标签内容width: 100px; 设置宽度height: 100px; 设置高度padding:5px; 内边距(顺时针上右下左)margin:5px; 外边距(顺时针上右下左)border: 1px solid #FF0000; 边线: 线粗 实线 颜色background-color: black; 设置背景颜色text-a原创 2021-01-06 21:49:39 · 6396 阅读 · 0 评论 -
day~~25 SQL优化、JDBC的连接、HBuilderX的HTML基本开发
回顾1)使用git命令git add . 提交改变(新增文件,修改,删除文件)把这些改变操作日记记录下来到本地索引git commit -m " 提交的别名 " 根据本地索引日志,进行提交操作,提交到本地仓库git push -u origin master 把本地仓库的内容提交到远程仓库git pull 拉取git clone 克隆一、SQL优化SQL优化是在很多小点上进行的优化索引中有很多类型:ALL(全表扫描,最差),index(全原创 2021-01-05 19:42:25 · 411 阅读 · 0 评论 -
git、github、gitee使用,SQL优化
回顾1)MySQL和Oracle的区别a.表名MySQL习惯小写,Oracle习惯大写b.字段名称 : MySQL小写,Oracle习惯大写c.constraint : 约束,主键语法不同d.字符串类型 : MySQL叫varchar,Oracle叫VARCHAR2e.日期类型 : MySQL叫datetime,Oracle叫TIMESTAMP(时间戳)f.浮点数类型:MySQL叫decimal,Oracle叫number,NUMERIC结论:SQL都遵循SQL92标准,意味着大多数SQL语原创 2021-01-04 20:28:39 · 220 阅读 · 0 评论 -
day~~23数据库中的事务、子查询、表关联、索引的使用
一、事务transaction1.事务的四个条件ACID1.原子性(Atomicity):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间的某个环节.事务在执行期间发生错误会直接回滚(rollback)到事务开始前的状态,就像从来没有执行过一样.2.一致性(Consistency):在事务开始之前和事务结束以后,数据库的完整性没有被破坏,表示写入的资料完全符合预设的规则.3.隔离性(Isolation):数据库允许多个并发事务同时对其数据进行读取或修原创 2020-12-30 21:42:45 · 140 阅读 · 0 评论 -
day~~21MySql的玩法
一、常用函数CREATE TABLE emp( empno NUMERIC(4) NOT NULL , ename VARCHAR(10), job VARCHAR(9), mgr NUMERIC(4), hiredate DATE, sal NUMERIC(7,2), comm NUMERIC(7,2), deptno NUMERIC(2));INSERT INTO emp VALUES(100,'jack','副总',NULL,'2002-05-03',90000,原创 2020-12-29 19:19:41 · 55 阅读 · 0 评论 -
day~~17 同步锁synchronized
一、同步锁synchronized1.概述用来解决多线程并发时造成的数据安全隐患同步: 就是指排队等待的现象锁: 就是把操作共享的代码锁起来2.两种用法1.在方法上synchronized public void add(){…}给方法加锁,让多线程拥有排队等待的效果,实现了数据的安全但是牺牲了效率2.在代码块上synchronized(锁对象){有问题的代码}给代码块加锁,要考虑两个问题:锁的位置+锁对象是啥锁对象必须是同一个对象3.注意1.如果共享资源是静态的,锁对象必须固定原创 2020-12-23 18:49:04 · 81 阅读 · 0 评论 -
day16~~HashMap、多线程、单线程和继承Thread和实现Runnable
一、HashMap1.概述实现了map接口 ,数据是无序的,可以存null键和null值2.创建对象HashMap() 构造一个默认初始容量(16)和默认加载因子(0.75)的空HashMap3.常用方法get(Object key) 返回指定键所映射的值;put(K key, V value) 此映射中关联指定值与指定键二、多线程1.概述用来提高程序的执行效率,充分利用CPU的执行权2.进程线程的区别进程是正在运行的程序一个软件的运行需要依赖一个或多个进程线程是操作系原创 2020-12-22 20:47:46 · 173 阅读 · 0 评论 -
day15~~ArrayList、LinkedList区别和Set接口、Map接口(和Collection是一个级别的)
一、ArrayList1.概述是List接口的实现类,拥有List接口的所有特点有序 可重复 能存null 有下标ArrayList本质是一个数组结构,底层维护了一个Object[] 查询效率高数组的容量会自动调整存在于java.util包中。内部用数组存放数据,封装了数组的操作,每个对象都有下标。内部数组默认初始容量是10。如果不够会以1.5倍容量增长。查询快,增删数据效率会降低。2,创建对象ArrayList()构造一个初始容量为 10 的空列原创 2020-12-18 23:14:45 · 65 阅读 · 0 评论 -
day14~~泛型~集合~Collection接口/迭代/List接口
一、泛型1.概述用来约束集合中元素的类型和提前报错 标志 <>泛型是(Generics)是JDK1.5 的一个新特性,其实就是一个『语法糖』,本质上就是编译器为了提供更好的可读性而提供的一种小手段,小技巧,虚拟机层面是不存在所谓『泛型』的概念的2.作用1.通过泛型的语法定义,约束集合元素的类型,进行安全检查,把错误显示在编译期2.泛型可以提升程序代码的可读性,但它只是一个语法糖(编译后这样的东西就被删除,不出现在最终的源代码中),对于JVM运行时的性能是没有任何影响的3.泛原创 2020-12-17 21:20:00 · 70 阅读 · 0 评论 -
day13~~IO文件流的普通子类和高效子类Buffered
一、File文件流1.创建对象File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。如: File file = new File("D:\\IOTest\\1.txt");2.常用方法length():文件的字节量exists():是否存在,存在返回trueisFile():是否为文件,是文件返回trueisDirectory():是否为文件夹,是文件夹返回truegetName():获取文件/文件夹名getParent():获原创 2020-12-17 10:45:01 · 47 阅读 · 0 评论 -
day12~~工具类StringBuilder、SimpleDateFormat、BigDecimal
一、工具的使用1.StringBuilder / StringBuffer三者在执行速度方面的比较:StringBuilder > StringBuffer > String1.概述优化字符串的拼接,提高效率2.创建对象StringBuilder()3.调用方法append()二、包装类1.概述专门用来给基本类型提供丰富的功能包装类型 Byte Short Integer Long Float Double Boolean Character2.Number是数字类型原创 2020-12-16 08:23:55 · 79 阅读 · 1 评论 -
day11~~开始用idea编辑器,测试Object和String中的常用方法
一、IDEA使用二、Object1.概述类Object是层次结构的根类,每个类使用Object作为超类2.创建对象new Object()3.常用方法String toString() 返回该对象的字符串显示int hashCode() 返回该对象的哈希码值Boolean equals(Object obj) 其它某个对象是否与此对象相等三、String1.概述String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。字符串是常量;它原创 2020-12-14 22:06:39 · 244 阅读 · 0 评论 -
day10~~抽象、接口
一、final方法 可以被继承,不可以被重写final对象 可以被继承重写但要直接设置初始值, 因为成员变量是有默认值的,当我们使用final后,他不再有默认值,所以必须一步直接赋值final类 不能被继承static类 普通类是不允许声明为静态的,只有内部类才可以。static方法 可以继承和重写二、异常1.异常有哪些异常?不知道解决方法 多态多态根本不关心,具体有几个子类多态把子类当作父类,更通用2.类别– Throwable - 顶级父类– Error:系统错误,无法修复–原创 2020-12-11 22:00:04 · 48 阅读 · 0 评论 -
day09~~多态
一、static关键字特点:–1.随着类的加载而加载,优先于对象加载–2.可以修饰成员变量,可以修饰成员方法,也可以修饰类–3.只加载一次,就会一直存在,不会再开辟空间–4.全局唯一,全局共享–5.可以直接被类名调用–6.静态只能调用静态,非静态可以任何调用–7.static不能和this和super共用,因为静态方法可以直接通过类调用,对象还没有创建,所以super找不到对象.会报错二、代码块静态代码块 在成员位置的代码块,只加载一次,就会一直存在构造代码块 在成员位置的代码块创建对原创 2020-12-10 22:15:22 · 52 阅读 · 0 评论 -
day08~~this、继承、super、重写
一、this关键字1.概述:代表本类对象的引用,用来调用本类里的成员变量和方法–必须出现的场景:----成员变量名和局部变量名相同的时候----在构造方法间互相调用时—单向可以调用,不能双向,死循环呐—this代码只能在第一行二、访问控制符用来控制一个类,或者类中的成员的访问范围public->protected->defaul->privatet三、继承1.概述–是父类和子类之间的关系–继承只能继承一个父类–子类继承父类以后,就有了父类所有的功能–好处:提高了父原创 2020-12-09 21:01:14 · 68 阅读 · 0 评论