自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 shell脚本编程

什么是shell shell是一个命令解释器,在操作系统的最外层,将用户输入的命令翻译给操作系统. 什么是shell脚本 将系统命令堆积在一起,顺序执行; 特定的格式+特定的语法+系统命令 = 文件 shell的基本规范 存放固定目录:/scripts 开头加 #!/bin/bash 脚本扩展名:.sh shell的执行 1.脚本中第一行 #!/usr/bin/bash 脚本中如果不写,在执行过程中如果./方式执行(需要权限),默认调用bash命令翻译该文件 脚本中如果写了使用什么解释器翻译,那么使用.

2021-01-25 20:56:34 520

原创 Spring事务传播特性及隔离级别

概念:当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行 例:批量转账,给10个人,最后一个人转账出了问题,是全部回滚还是只回滚最后一个人的 代码演示 public void A(){ sout("A方法执行了"); B(); } public void B(){ sout("B方法执行了"); } 必须有事务 required如果当前没有事物就创建一个事物,如果当前有事物就加入该事物 A调用B,AB共用一个事务 mandatory支持当前事物,如果当前存在事物就加入该事物,否则就抛出

2021-01-20 11:28:47 140

原创 JAVA基础——反射

反射:将类的各个组成部分封装为其他对象 获取Class对象的方式 Class.forname(“全类名”) :将字节码文件加载进内存,返回Class对象 类名.class:通过类名的属性class获取 对象.getClass():getClass()在Object类中定义 应用于框架 ...

2021-01-15 19:12:22 153

原创 JAVA基础——内部类

分类: 成员内部类 局部内部类(包含匿名内部类) 注意:内用外,随意访问;外用内,需要内部类对象 成员内部类 (可用全部修饰符) public class Body {//外部类 public class Heart{//成员内部类 public void beat(){ System.out.println("内部类的方法"); System.out.println(name);//内部类可以访问外部类资源 }

2021-01-13 19:41:29 132

原创 JAVA基础——输出中带字符串

使用运算符“+” 打印输出中第一个元素为字符,“+”号后面的元素都会按照字符输出 打印输出中前面两个整形元素,后面存在字符元素,则整形先计算再转为字符 public class test0112 { public static void main(String[] args) { int a = 1; int b = 2; String s = "ss"; System.out.println(s+a+b);//ss12

2021-01-12 16:33:50 290

原创 项目——秒杀系统目录结构、Maven

创建项目总包——leyou packageing:pom 在总包下创建各微服务module <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apach.

2020-08-17 15:28:05 129

原创 JAVA基础——泛型

泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法 泛型类 泛型类型用于类的定义中,被称为泛型类。通过泛型可以完成对一组类的操作对外开放相同的接口。最典型的就是各种容器类,如:List、Set、Map。 class 类名称 <泛型标识:可以随便写任意标识号,标识指定的泛型的类型>{ private 泛型标识 /*(成员变量类型)*/ var; ..... } } 一个最普通的泛型类: //此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型 //在实例

2020-08-17 13:58:18 198

原创 常用工具——统一返回响应

@Data public class Resp<T> { private Integer code; private String msg; private T data; //有参构造器 public Resp(Integer code, String msg, T data) { this.code = code; this.msg = msg; this.data = data; } /

2020-08-17 11:46:12 147

原创 项目——Redis实现分布式锁、redisson、redis缓存

分布式锁 由于多线程分布在不同的机器上,原单机部署情况下的并发控制策略失效,单纯的JAVA API 不提供分布式锁的能力,为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问 简单实现模型 1.执行redis的setnx命令并设置过期时间,防止死锁 2.判断setnx返回值是否为真 3.为真则说明设置锁成功 为假则重试,递归此方法 4.执行业务逻辑 5.释放锁资源(自己的锁,具备原子性,使用LUA脚本),删除锁key @Override public void testLock() {

2020-08-03 17:22:30 467

原创 项目——SpringAOP环境简单搭建+利用注解实现AOP

引入依赖 <dependencies> <!--spring核心依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.2.RELEASE<

2020-08-02 16:12:55 265

原创 springMVC自定义拦截器、ThreadLocal

1.编写拦截器类,继承HandlerInterceptorAdapter类,重写preHandle(),afterCompletion()方法,并加入到Spring容器中 @Component public class LoginInterceptor extends HandlerInterceptorAdapter { private static final ThreadLocal<UserInfo> THREAD_LOCAL = new ThreadLocal<>(

2020-07-02 13:15:19 389

原创 sso单点登录、JWT、RSA、配置文件参数读取

无状态登录 微服务集群中的每个服务,对外提供的都是Rest风格的接口。而Rest风格的一个最重要的规范就是:服务的无状态性,即: 服务端不保存任何客户端请求者信息 客户端的每次请求必须具备自描述信息,通过这些信息识别客户端身份 带来的好处是什么呢? 客户端请求不依赖服务端的信息,任何多次请求不需要必须访问到同一台服务 服务端的集群和状态对客户端透明 服务端可以任意的迁移和伸缩 减小服务端存储压力 无状态登录流程 无状态登录的流程: 当客户端第一次请求服务时,服务端对用户进行信息认证(登录) 认证通

2020-07-01 17:16:51 635

原创 Semaphore和CountDownLatch

https://baijiahao.baidu.com/s?id=1648357437301661861&wfr=spider&for=pc

2020-06-27 16:18:44 744

原创 rabbitMQ的入门指南

五种消息模型 订阅模型分类 Fanout:广播,将消息交给所有绑定到交换机的队列 Direct:定向,把消息交给符合指定routing key 的队列 在路由模式中,我们将添加一个功能 - 我们将只能订阅一部分消息。 例如,我们只能将重要的错误消 息引导到日志文件(以节省磁盘空间),同时仍然能够在控制台上打印所有日志消息。 但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。 在Direct模型下,队列与交换机的绑定,不能是任意绑定了,而是要指定一个Ro

2020-06-27 15:07:17 293

原创 elasticsearch

倒排索引 以字或词为关键字进行索引,表中关键字所对应的记录表项,记录了出现这个字或词的所有文档,每一个表项记录该文档的编号和关键字在该文档中出现的位置情况。 效果:从海量数据中快速获取需要的信息 底层API:lucene 具体实现的搜索产品:elasticsearch,solr elasticsearch的安装 elasticsearch:https://www.elastic.co/cn/downloads/past-releases#elasticsearch kibana:https://www.e

2020-06-27 14:37:52 126

原创 事务、分布式事务

事务:逻辑上的一组操作,要么都成功要么都失败 事务的四个特性:ACID 原子性,一致性,隔离性,持久性 事务的隔离级别: 读未提交:产生脏读 读已提交:不可重复读 可重复读:幻读(mysql默认) 序列化读:性能最低 传播行为(7个) 七种传播行为: REQUIRED 支持当前事务,如果不存在,就新建一个 SUPPORTS 支持当前事务,如果不存在,就不使用事务 MANDATORY 支持当前事务,如果不存在,抛

2020-06-26 21:33:04 198

原创 springcloud中的跨域问题

springcloud-gateway集成的是webflux,使用的是CorsWebFilter 在gmall-gateway中编写一个配置类,并且注册CorsWebFilter: @Configuration public class CorsConfig { @Bean public CorsWebFilter corsWebFilter() { // 初始化CORS配置对象 CorsConfiguration config = new CorsCon

2020-06-26 20:44:09 291

原创 Gateway网关

引入maven依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> 注意:引入gateway依赖的同时,引入nacos依赖,成为微服务,实现服务之间的调用 配置.

2020-06-26 19:39:51 335

原创 Nacos注册配置中心

bootstrap.yml的基本配置 spring: application: # 微服务名 name: pms-service cloud: nacos: config: # nacos 注册/配置中心地址 server-addr: 127.0.0.1:8848 # 命名空间 namespace: dd59732b-ad25-4de4-b9e4-ec9801a5e3f0 group:

2020-06-26 17:52:13 260

原创 mybatis-plus代码生成器

使用前准备:lombok,数据库表 使用逻辑删除功能,要为 deleted字段添加注解@TableField(value = "is_deleted") 并在mp配置类中加入 /** * 逻辑删除插件 */ @Bean public ISqlInjector sqlInjector() { return new LogicSqlInjector(); } appl...

2020-06-06 17:59:59 316

原创 Git使用

初始化git 在文件夹中打开Git bash,输入命令 git init,文件夹将被git仓库托管 文件夹下会产生一个git的隐藏文件 $ git init 设置系统级用户签名 git config --global user.name 用户名 git config --global email 用户邮箱 基本操作 git status 查看工作区、暂存区状态 添加 git add [file name] 将工作区的“新建/修改”添加到暂存区 git add . 将所有文件添加到暂存区 提交 gi

2020-06-06 15:15:05 113

原创 swagger2的简单使用

swagger2的使用 1、相关依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfo

2020-06-04 13:05:18 268

空空如也

空空如也

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

TA关注的人

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