自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringBoot自定义starter-统一上传服务

为什么要用starter在日常的开发中,许多功能都是重复的,比如上传,权限认证,redis的一些操作等。如果采用模块的方式在每一个项目中都加载这些模块,会导致项目比较大,且结构不清晰。如果采用了starter就可以简便很多,在开发中,只需要从仓库依赖需要的jar即可。背景前两天,国内的码云抽风了,导致大家的图床都受到了影响,无法查看到图片。我的社区也收到了影响,于是,我将上传操作相关构建...

2022-03-28 16:37:00 687

原创 使用Redis锁可能出现的问题

分布式锁分布式锁常规情况下都是使用redis来实现。很早以前,使用SETNX加过期命令进行设置,无法保证原子性。但随着时代的发展,redis已经支持一条指令(set指令)实现setnx加过期时间。什么是线程不安全?线程不安全指的是多个线程操作一个资源,期望值和获取到的数据不一致。可能存在的问题没有一种解决方案是银弹在使用分布式锁的情况下,需要考虑如果一个线程获取到锁之后,如...

2022-03-22 14:47:00 858

原创 自定义注解实现接口限流

自定义注解实现接口限流场景:限制验证码在单位时间内的访问次数实现流程:自定义一个注解,注解内包含访问的次数与单位时间。通过AOP进行切面拦截,获取注解内的次数和时间,获取请求的uri与访问者ip。组成redis的key。使用redis将key进行原子性自增1.如果返回的是1.则设置过期时间,之后的访问直接incr即可。但是这种方式存在问题,不是原子性的,所以需要采用原子性的设置key和过期...

2022-03-14 14:39:00 287

原创 Java并发-2

Synchronized保证三大特性原子性对num++增加同步代码块后,保证同一时间只有一个线程操作num++。就保证了不会出现问题。可见性synchronied对应lock原子操作会刷新工作内存中共享变量的值有序性加入synchronied依然会发生指令重排,只不过我们有同步代码块,可以保证只有一个线程来执行同步代码块中的代码。保证有序性。Synchronzied的特性可重入性...

2022-03-07 18:31:00 125

原创 Java并发-1

进程进程是操作系统进行资源资源分配的单位,进程中包含若干线程线程线程是CPU进行调度和执行的基本单位方法区 堆 虚拟机栈 本地方法栈 程序计数器每个线程拥有自己的栈和PC多个线程共享方法去和堆并行和并发并行单位时间内,任务同时执行并发在一定时间内,任务都执行了并行是一起执行。并发是宏观上一起执行的,实际上是CPU时间片的轮询创建线程的方式继承Threa...

2022-03-06 00:09:00 75

原创 社区项目Redis分布式锁-穿透-击穿-雪崩

项目利用使用到了redis,比如会出现穿透、击穿、雪崩等问题。穿透缓存种不存在,数据库种也不存在,导致每一次的请求都会到数据库层面。解决方案:缓存空对象,或者使用布隆过滤器击穿某个key在有大量的请求,但是大量请求到的时候,过期了,然后导致大量请求都到数据库层面解决方案:数据不过期或者使用分布式锁,防止所有的请求都到数据库雪崩缓存种的key大面积失效,导致所有请求都到了数据库。...

2022-02-23 15:24:00 175

原创 敬畏之心才能进步

敬畏之心才能进步

2022-02-16 14:32:00 158

原创 社区项目遇到的问题

判断当前用户与消息用户是否是同一个,如果是同一个,则将id加入数组,将记录更新为已读。因为用户的id是整形,所以判断的时候使用的是进行比较。在测试中发现同一个用户的id比较为false。代码查看,2个id,使用的都是Integer类型,属于对象,且id大于了127.所以,应该使用equals判断内容是否相等,而非比较内存地址集成es搜索引擎,实现高亮搜索,在测试中,发现如果用户输入的...

2022-02-15 13:03:00 147

原创 社区项目前端vue总结

前序在开发社区项目的前端时,根据当前的流行,选择了前后端分离,另外一方面也可以实现后端与前端的解耦。使修改前端代码的时候,无需再打包后台程序。另外用用vue,提升一下技能。后端程序也得会前端啊。一些总结在开发中,总有一些方法在多个组件或者view中使用,每次都需要手动引入对应的方法,导致很繁琐,那么有没有方法不在每个需要的对应方法的组件导入呢?有需求-就会有解决方案。我们的需求,就是将...

2022-02-15 12:17:00 389

原创 集合之ArrayList

ArrayList的概念ArrayList是一个支持快速访问、序列化、克隆的容器,底层数据结构由数组实现,动态扩容实质为数组的扩容。ArrayList实现RandomAccess, Cloneable, java.io.Serializable接口,用于标记是否支持快速访问、序列化、克隆。ArrayList实现与List接口,继承与AbstractList抽象类ArrayList的总结...

2021-10-28 11:35:00 70

原创 vue之后台管理页面路由

vue之后台管理页面路由原理:左边菜单router-link到子路由,右边主内容 router-view路由代码import { createRouter, createWebHistory } from 'vue-router'import Home from '../views/Home.vue'const routes = [ { path: '/', name: 'Home', component: Home, redirect: '/index

2021-07-19 21:37:23 221

原创 vue之侧边栏展开收起

学习侧边栏展开收起原理:动态计算右边主区域内容。动态更改css样式,过渡使操作圆润代码<template> <div class="home"> <div class="main"> <ul class="left_main" :class="{ left_main_shou: !openStatus }"> <h1 @click="change">{{ openText }}</h1>

2021-07-19 21:06:40 1536

原创 vue 集成tinymce富文本编辑器

vue 集成tinymce富文本编辑器安装使用npm安装或者官网下载npm install tinymce -S将node下的tinycme全部复制到static目录下或public目录下。然后在页面引入对应的js与css 语言包需要官网下载代码示例<template><div id="tinymce-editor">TinyMce Editor</div></template><script>import '../..

2021-07-04 22:21:11 345 3

原创 JVM之类加载器子系统

类加载器子系统作用负责从文件系统或网络系统中加载class文件,class文件在开头有特殊的标记(魔术开头CA FE BA BE)ClassLoader只负责加载class文件,至于能否运行,由执行引擎决定加载的类的信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映...

2021-03-02 20:41:00 59

原创 自定义注解实现Execl的导入导出

自定义注解实现Execl导入导出悲伤,我是Java开发程序员,竟然被说是做运维的了。我是开发开发开发!!!!写个笔记,记录一下以前的execl导入导出功能代码pom坐标此处使用常规版本3.9,未使用4.0版本,原因部分API已删除或过时<dependency> <groupId>org.apache.poi</groupId> &lt...

2021-01-28 18:23:00 141

原创 MySQL主从配置

一主一从my.cnf配置主:修改配置文件:vim /etc/my.cnf#主服务器唯一IDserver-id=1#启用二进制日志log-bin=mysql-bin# 设置不要复制的数据库(可设置多个)binlog-ignore-db=mysqlbinlog-ignore-db=information_schema#设置需要复制的数据库binlog-do-...

2021-01-25 13:31:00 61

原创 Redis部署-docker-离线方式

redis部署redis docker部署docker pull registry.docker-cn.com/library/redisdocker-compose.ymlversion: '2'services: redis: image: redis:latest container_name: redis restart: always...

2021-01-25 13:27:00 340

原创 Docker部署 Nginx -本地or离线

docker部署Nginxdocker部署nginx拉取nginx镜像docker pull nginx:1.19.2运行nginxdocker run --name nginx -p 80:80 -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf:/etc/nginx/conf.d -d nginx:1.19.2...

2021-01-25 13:24:00 186

原创 MySQL部署

MySQL部署本文档分为docker部署与物理环境部署docker部署MySQL拉取mysql官方镜像(dockerhub/https://hub.daocloud.io/)创建目录--存放mysql数据文件创建docker-compose.yml文件运行docker下部署命令docker pull daocloud.io/library/mysql:5.7....

2021-01-25 11:41:00 58

原创 部署Docker环境

Docker部署在线安装安装命令 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 设置仓库源 yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce....

2021-01-25 11:37:00 46

原创 方法的参数传递机制

方法的参数传递机制实参给形参赋值:形参是基本数据类型传递数据值实参是引用数据类型传递地址值(形参是实参的引用拷贝)特殊的类型:String、包装类等对象不可变性前置知识每一个方法对应一个方法栈对应一个局部变量表Integer常量池范围-127到128,超过整个范围将会重写生成一个对象并将值放到堆里面...

2021-01-24 16:11:00 42

原创 类初始化和实例化过程

类初始化和实例化过程类初始化过程1、一个类要创建实例需要先加载并初始化该类​ main方法所在的类需要先加载和初始化2、一个子类要初始化需要先初始化父类3、一个类初始化就是执行clinit()方法​ clinit每个类都有,自动生成 中文名类初始化方法​ clinit方法由静态类变量显示赋值代码和静态代码块组成类变量显示赋值代码和静态代码块代码从上到下顺序执行(谁在上面谁先...

2021-01-24 15:22:00 201

原创 单例模式的常见写法

单例模式概念:某个类在整个系统中只能有一个实例对象,并且是自己创建的唯一实例,构造方法私有化。饿汉式:直接创建对象,不存在线程安全问题直接实例化饿汉式(简洁直观)枚举式(最简洁)静态代码块饿汉式(适合复杂实例化)懒汉式:延迟创建对象线程不安全(适用于单线程)线程安全(适用于多线程)静态内部类形式(适用于多线程)应用场景数据库的连接池不会反复创建spring中⼀个...

2021-01-24 13:56:00 56

原创 SpringBoot全局时间转换器

SpringBoot全局时间转换器日常开发中,接收时间类型参数处处可见,但是针对不同的接口。往往需要的时间类型不一致@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")需要每个属性上都要增加,大大增加工作量可通过实现Converter接口,进行全局时间转换全局时间转换代码import org.springframework.core.conv...

2020-12-29 16:42:00 151

原创 SpringBoot全局异常拦截

SpringBoot全局异常捕获使用到的技能@RestControllerAdvice或(@ControllerAdvice+@ResponseBody)@ExceptionHandler代码实现统一返回入口自定义异常全局异常处理统一返回入口Result/** * @ClassName Result * @Description 统一返回格式 * @Author ...

2020-12-29 16:09:00 256

原创 Spring 之AOP AspectJ切入点语法详解

记录一下,以后学习https://blog.csdn.net/zhengchao1991/article/details/53391244

2019-03-10 00:07:00 55

原创 ProceedingJoinPoint 某些方法记录一下

转载与百度知道,记录一下。遇到在去看API 官方文档//拦截的实体类Object target = point.getTarget();//拦截的方法名称String methodName = point.getSignature().getName();//拦截的方法参数Object[] args = point.getArgs();//拦截的放参数类型Class[] para...

2019-03-10 00:01:00 125

原创 SpringBoot 2.X以上集成redis

在网上看到的教程和资料大多数都是2.X以下的版本。使用起来会出现各种问题,通过百度,最后终于弄好了。2.x以上使用的是spring-boot-starter-data-redis 2.x一下使用的是spring-boot-starter-redis <!-- https://mvnrepository.com/artifact/org.springframework.b...

2019-03-09 20:46:00 127

原创 SpringBoot文件上传配置

/** * 文件上传配置 * @return */ @Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); //文...

2019-03-06 16:27:00 44

原创 editmd输出到前端显示

官方案例:html-preview-markdown-to-html.html 输出后台数据显示在前端,格式化内容<!DOCTYPE html><html lang="zh" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8" /> ...

2019-03-03 14:22:00 72

原创 Thymeleaf Shiro标签

记录一下guest标签  <shiro:guest>  </shiro:guest>  用户没有身份验证时显示相应信息,即游客访问信息。user标签  <shiro:user>    </shiro:user>  用户已经身份验证/记住我登录后显示相应的信息。authenticated标签  <shiro:authe...

2019-03-02 20:47:00 84

原创 Springboot 添加druid监控

pom <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.9</version> ...

2019-03-02 14:53:00 39

原创 基于SpringBoot的博客项目

SpringBoot 博客系统后端:框架:SpringBoot安全框架:shiro数据库:mysqlORM:mybaits mybaits-plus插件:lombok模板引擎:thymeleaf前端前端框架:layuiJqueryMarkdown: editor.mdlayui Table本来是用来学习shiro的,学着学着就想写个博客系统。然后在原来的基础上进...

2019-03-01 23:35:00 100

原创 SpringBoot默认首页配置

@Configurationpublic class DefaultView extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/")...

2019-03-01 23:09:00 51

原创 当layui与分页相遇--bootstrap何去何从

用了一段时间,感觉layui比bootstrap 方便了很多。在js操作上比bootstrap减少了许多的代码量。今天遇到需要前台分页。当然,不是表格,如果是表格的话。使用yalui table和bootstrap table都很简单。但是今天是要随意分页。任意标签。看了看官方文档。也不是很懂,网上看了看。最后涂涂改改。终于中了出来。开心ing人生就像魔法书,涂涂改改又是几千年。需求:...

2019-03-01 20:54:00 58

原创 当Thymeleaf遇到向js中传值的操作

在使用Thymeleaf的时候。关于一些点击操作非常头疼。往往需要向JS里面传递各种东西。然而,在用Thymeleaf的时候。js操作需要拼接语句。但是又不好拼接。关于一些操作,一般也是在表格中。这次所用的是layui table,和bootstrap table差不多。这个方法最主要的是不用去拼接了。可以直接在js中获取内容。然后传入js方法。要想实现自定义事件,需要添加选择器。也就是...

2019-02-28 20:26:00 289

原创 MyBatis-Plus 多表联查+分页

在写东西的过程中,多表联查和分页功能必不可少。当然,crud也很重要但是又不想写代码和xml。通过苦苦的查找。发现MyBatis-Plus一款国产的框架。优化了许多操作本次主要记录一下,多表联查和分页的使用。Pom.xml     <dependency> <groupId>com.baomidou</groupId>...

2019-02-25 22:10:00 97

原创 LayUI表单提交不走ajax原因

在使用layui的时候。遇到一个问题。提交表单,没有走ajax,直接提交了表单页面。原因是因为JQuery未引入解决办法。引入JQuery或者使用layui自带Jquery var $ = layui.jquery; 也可以直接引入官方的Jquery来和平常一样使用 <script type="text/javascript"> ...

2019-02-13 14:46:00 193

原创 WebService的简单Demo

看到招聘要求要会WebService。就百度看看是如何实现的。测试了一下。发现使用webservice开发方法,好像方便了不少。服务端开发者只需要关注服务端就可以了。Demo结构IWebService 接口WebServiceImpl 实现类WebServicePush 测试发布类package demo;import javax.jws.WebMethod;import...

2018-12-10 22:51:00 67

原创 Layui关闭弹出层对话框--刷新父界面

在毕设的开发中,添加用户、添加权限等等一些地方需要类似于bootstrap中的模态框。然而开发用的却是layui在layui中有弹出层可以实现其中的效果。但是,一般用的时候都是提交后关闭窗口,刷新父界面。这里记录一下方法var index = parent.layer.getFrameIndex(window.name); //获取窗口索引window.parent.location.r...

2018-12-09 22:29:00 132

2020年最新版本_XSS平台源码_超强版.rar

2020年最新版本_XSS平台源码_超强版

2021-05-08

空空如也

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

TA关注的人

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