- 博客(22)
- 收藏
- 关注
原创 shell脚本编程
什么是shellshell是一个命令解释器,在操作系统的最外层,将用户输入的命令翻译给操作系统.什么是shell脚本将系统命令堆积在一起,顺序执行;特定的格式+特定的语法+系统命令 = 文件shell的基本规范存放固定目录:/scripts开头加 #!/bin/bash脚本扩展名:.shshell的执行1.脚本中第一行 #!/usr/bin/bash脚本中如果不写,在执行过程中如果./方式执行(需要权限),默认调用bash命令翻译该文件脚本中如果写了使用什么解释器翻译,那么使用.
2021-01-25 20:56:34
510
原创 Spring事务传播特性及隔离级别
概念:当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行例:批量转账,给10个人,最后一个人转账出了问题,是全部回滚还是只回滚最后一个人的代码演示public void A(){ sout("A方法执行了"); B();}public void B(){ sout("B方法执行了");}必须有事务required如果当前没有事物就创建一个事物,如果当前有事物就加入该事物A调用B,AB共用一个事务mandatory支持当前事物,如果当前存在事物就加入该事物,否则就抛出
2021-01-20 11:28:47
133
原创 JAVA基础——反射
反射:将类的各个组成部分封装为其他对象获取Class对象的方式Class.forname(“全类名”) :将字节码文件加载进内存,返回Class对象类名.class:通过类名的属性class获取对象.getClass():getClass()在Object类中定义应用于框架...
2021-01-15 19:12:22
145
原创 JAVA基础——内部类
分类:成员内部类局部内部类(包含匿名内部类)注意:内用外,随意访问;外用内,需要内部类对象成员内部类 (可用全部修饰符)public class Body {//外部类 public class Heart{//成员内部类 public void beat(){ System.out.println("内部类的方法"); System.out.println(name);//内部类可以访问外部类资源 }
2021-01-13 19:41:29
124
原创 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
283
原创 项目——秒杀系统目录结构、Maven
创建项目总包——leyoupackageing: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
119
原创 JAVA基础——泛型
泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法泛型类泛型类型用于类的定义中,被称为泛型类。通过泛型可以完成对一组类的操作对外开放相同的接口。最典型的就是各种容器类,如:List、Set、Map。class 类名称 <泛型标识:可以随便写任意标识号,标识指定的泛型的类型>{ private 泛型标识 /*(成员变量类型)*/ var; ..... }}一个最普通的泛型类://此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型//在实例
2020-08-17 13:58:18
187
原创 常用工具——统一返回响应
@Datapublic 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
136
原创 项目——Redis实现分布式锁、redisson、redis缓存
分布式锁由于多线程分布在不同的机器上,原单机部署情况下的并发控制策略失效,单纯的JAVA API 不提供分布式锁的能力,为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问简单实现模型1.执行redis的setnx命令并设置过期时间,防止死锁2.判断setnx返回值是否为真3.为真则说明设置锁成功 为假则重试,递归此方法4.执行业务逻辑5.释放锁资源(自己的锁,具备原子性,使用LUA脚本),删除锁key@Overridepublic void testLock() {
2020-08-03 17:22:30
453
原创 项目——SpringAOP环境简单搭建+利用注解实现AOP
引入依赖<dependencies> <!--spring核心依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.2.RELEASE<
2020-08-02 16:12:55
254
原创 springMVC自定义拦截器、ThreadLocal
1.编写拦截器类,继承HandlerInterceptorAdapter类,重写preHandle(),afterCompletion()方法,并加入到Spring容器中@Componentpublic class LoginInterceptor extends HandlerInterceptorAdapter { private static final ThreadLocal<UserInfo> THREAD_LOCAL = new ThreadLocal<>(
2020-07-02 13:15:19
381
原创 sso单点登录、JWT、RSA、配置文件参数读取
无状态登录微服务集群中的每个服务,对外提供的都是Rest风格的接口。而Rest风格的一个最重要的规范就是:服务的无状态性,即:服务端不保存任何客户端请求者信息客户端的每次请求必须具备自描述信息,通过这些信息识别客户端身份带来的好处是什么呢?客户端请求不依赖服务端的信息,任何多次请求不需要必须访问到同一台服务服务端的集群和状态对客户端透明服务端可以任意的迁移和伸缩减小服务端存储压力无状态登录流程无状态登录的流程:当客户端第一次请求服务时,服务端对用户进行信息认证(登录)认证通
2020-07-01 17:16:51
619
原创 Semaphore和CountDownLatch
https://baijiahao.baidu.com/s?id=1648357437301661861&wfr=spider&for=pc
2020-06-27 16:18:44
739
原创 rabbitMQ的入门指南
五种消息模型订阅模型分类Fanout:广播,将消息交给所有绑定到交换机的队列Direct:定向,把消息交给符合指定routing key 的队列在路由模式中,我们将添加一个功能 - 我们将只能订阅一部分消息。 例如,我们只能将重要的错误消息引导到日志文件(以节省磁盘空间),同时仍然能够在控制台上打印所有日志消息。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。在Direct模型下,队列与交换机的绑定,不能是任意绑定了,而是要指定一个Ro
2020-06-27 15:07:17
280
原创 elasticsearch
倒排索引以字或词为关键字进行索引,表中关键字所对应的记录表项,记录了出现这个字或词的所有文档,每一个表项记录该文档的编号和关键字在该文档中出现的位置情况。效果:从海量数据中快速获取需要的信息底层API:lucene具体实现的搜索产品:elasticsearch,solrelasticsearch的安装elasticsearch:https://www.elastic.co/cn/downloads/past-releases#elasticsearchkibana:https://www.e
2020-06-27 14:37:52
120
原创 事务、分布式事务
事务:逻辑上的一组操作,要么都成功要么都失败事务的四个特性:ACID 原子性,一致性,隔离性,持久性事务的隔离级别:读未提交:产生脏读读已提交:不可重复读可重复读:幻读(mysql默认)序列化读:性能最低传播行为(7个)七种传播行为:REQUIRED 支持当前事务,如果不存在,就新建一个SUPPORTS 支持当前事务,如果不存在,就不使用事务MANDATORY 支持当前事务,如果不存在,抛
2020-06-26 21:33:04
188
原创 springcloud中的跨域问题
springcloud-gateway集成的是webflux,使用的是CorsWebFilter在gmall-gateway中编写一个配置类,并且注册CorsWebFilter:@Configurationpublic class CorsConfig { @Bean public CorsWebFilter corsWebFilter() { // 初始化CORS配置对象 CorsConfiguration config = new CorsCon
2020-06-26 20:44:09
277
原创 Gateway网关
引入maven依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>注意:引入gateway依赖的同时,引入nacos依赖,成为微服务,实现服务之间的调用配置.
2020-06-26 19:39:51
328
原创 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
241
原创 mybatis-plus代码生成器
使用前准备:lombok,数据库表使用逻辑删除功能,要为 deleted字段添加注解@TableField(value = "is_deleted")并在mp配置类中加入/** * 逻辑删除插件 */@Beanpublic ISqlInjector sqlInjector() { return new LogicSqlInjector();}appl...
2020-06-06 17:59:59
310
原创 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
104
原创 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
254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人