- 博客(52)
- 收藏
- 关注
原创 springboot启动流程
获取EventPublishingRunListener监听器,并执行其started方法,并且将创建的Spring容器传进去了,创建一个ApplicationStartedEvent事件,并执行ConfigurableApplicationContext 的publishEvent方法,也就是说这里是在Spring容器中发布事件,并不是在SpringApplication中发布事件,和前面的starting是不同的,前面的starting是直接向SpringApplication中的监听器发布启动事件。
2022-11-15 13:25:50
468
原创 图形验证码
@GetMapping("test2") public Result<?> test(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setDateHeader("Expires", 0); response.setHeader("Cache-Control", "no-store, no-cache, must-revali.
2022-04-13 18:40:19
435
原创 aes加密解密
public final static byte[] aes_key = {1, 2, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; public static void main(String[] args) { AES aes = SecureUtil.aes(aes_key); // 加密为16进制表示 String encryptHex = aes.encryptHex("...
2022-04-11 17:29:53
980
原创 jwt生成token
<!-- JWT--> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency>package ...
2022-04-11 17:29:04
383
原创 线程池的使用以及拒绝策略
核心线程池没满就创建核心线程来执行,满了就放入等待队列里,等待队列没满就加入队列,满了就判断最大线程池有没有满,没满就创建线程来执行(核心线程之外的空闲线程会根据存活时间来销毁),满了就按照拒绝策略来执行,如果是CallerRunsPolicy策略,就是由提交该任务的线程来执行。ThreadPoolExecutor.CallerRunsPolicy由调用线程(提交任务的线程)处理该任务。countDownLatch.await()让进程处于等待状态,直到计数器减到0为止才启动。...
2022-04-11 14:39:13
1118
原创 @PropertySource读yml
默认只能读propertiespackage com.xa.cloud.personal.config;import com.alibaba.fastjson.JSONObject;import com.xa.cloud.personal.VO.UseAppKeyVo;import lombok.Data;import org.apache.commons.lang3.ObjectUtils;import org.apache.commons.lang3.StringUtils;im
2022-04-01 17:56:42
763
原创 跨域问题xxxx
package com.xa.cloud.user.config;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configurati.
2022-03-17 17:34:33
119
原创 脱敏工具类
package com.xa.cloud.personal.utils;import org.apache.commons.lang3.StringUtils;/** * 数据脱敏工具类 * */public class BlurDataUtil { private static final int SIZE = 6; private static final String SYMBOL = "*"; /** * 手机号脱敏处理 * 脱敏规.
2022-03-17 16:20:56
206
原创 mybatisplus代码生成器新
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.1</version> </dependency> <!--逆向工程需要模板...
2022-03-17 08:57:06
384
原创 nacos
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.1.0.RELEASE</version></dependency>nacos为什么自带负载均衡.
2022-03-09 11:32:40
229
原创 excel文件下载
public static void downLoadStuInfoExcel(HttpServletResponse response, HttpServletRequest request, String fileName) throws FileNotFoundException{ //学生新建excel下载模板保存地址从配置文件中读取// String folderPath = ResourceBundle.getBundle("systemcon...
2022-03-07 11:34:24
492
原创 springcloud
springboot以数字来命名版本号,而springcloud以伦敦地铁站来命名,A-Z来命名版本号两者有固定的相对应关系,在spring.io里面找springcloud有对应版本号如何查看具体的对应版本号?https://start.spring.io/actuator/info这个网址获取到json信息,再通过json工具 - 在线工具 (tool.lu)工具解析查看nacos是重中之重,服务注册,服务配置和服务总线都是用nacos,服务降级或者是服务熔.
2022-02-26 21:11:44
297
原创 单元测试。
springboot2.2之后引入的测试默认都是junit5 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> &l
2021-12-17 22:42:38
433
原创 github 和git
账户名邮箱,密码1.创建仓库2.创建分支branch,作用是类似于副本,已存在一个main分支是默认的最终分支3.修改内容以及提交更改Gitgit安装以及环境变量的配置安装完成后的:git bash linux风格的(建议使用)git cmd window风格的git GUI图形界面git为每个仓库提供用户名,就是提交上去会显示的提交者的名字git config -l可以查看系统配...
2021-12-06 18:21:36
882
原创 阿里云短信服务
在代码的msm模块里代码里的是阿里云的短信服务,申请不了test里的是106短信的,但是这能使用那个测试模板,需要联系客服开通,要实名。
2021-11-22 16:05:41
225
原创 springboot整合redis
<!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- spring2.X集成red..
2021-11-14 16:44:20
232
原创 java基础
1.冒泡排序int []a=new int[]{1,5,3,4,6}for(int i=0;i<a.length-1;i++){ for(int j=0;j<a.length-1-i;j++){ if(a[j]>a[j+1]){ int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } }}2.快速排序public v
2021-11-12 14:59:38
7839
原创 谷粒学院之前台页面
模板是nuxt,是基于nodejs的模板,只包含vue,要用到elementui需要引入。这个和ajax的区别在于ajax请求后台服务器异步获取数据(客户端渲染),以前的servlet方式就是服务端渲染而这个也是服务端渲染,发送请求到nodejs,再由nodejs获取到服务端的数据,进行服务端渲染再把网页返回给html。安装幻灯片插件,用于之后的banner图轮播后台的cms模块做banner相关接口nuxt没有axios需要npm install...
2021-11-11 17:43:40
824
原创 redis
redis默h认有16个库,数组下标从0开始,默认使用0号库。redis和memcached的区别?1.redis支持更丰富的数据类型,string、list、set、zset,hash等memcached只支持string2.redis支持数据持久化,可以将数据存在磁盘里,重启的时候可以再次加载使用memcached只能将数据放在内存里,断电即失3.memcached是多线程加锁,redis是单线程和多路io复用redis五大数据类型String是redis最基本的
2021-11-04 17:15:55
132
原创 mysql
1.varchar和char的区别?varchar是变长字段,char是定长字段2.varchar(10)和int(10)varchar(10)代表了存储数据的最大长度int(10)只是展示的长度,int(1)和int(10)所占空间相同3.ACID原子性:要么都成功,要么都失败一致性:总量一致隔离性:事务间互不影响持久性:提交事务后数据永久改变不可逆4.不考虑隔离级别会出现的读的问题脏读:一个事务读取到了另一个未提交的事务不可重复读:一个事务多次
2021-11-03 15:50:59
78
原创 java面试
多线程1.创建线程的方式继承Thread类,重写run方法,通过new对象来调用start启动 实现Runnable接口,重写run方法,通过new Thread(该类对象).start调用 以上两种方式的区别 相同点:Thread类也实现了Runnable接口,重写了run方法。 Thread类有形参为Runnable的构造器,所以本质上以上两种方式都是创建Thread对象。 不同点:实现Ru...
2021-10-22 11:18:08
100
原创 springboot
@SpringBootApplication 是启动类,(必须和controller这些包同级)原因:这个注解实际上是@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan("")由这三个注解组成,第三个默认扫描启动类的上一级,所以启动类必须和controller这些包同级。@RestContro...
2021-10-21 17:27:39
455
原创 spring
为什么要学习spring?spring提供了ioc容器,不需要自己创建和管理对象,由spring来创建和管理。spring提供了面向切面编程,不修改源代码的情况下对功能进行增强。spring提供了事务支持,使事务操作变得更加方便。spring方便集成其他框架,例如mybatis。IOC控制反转,由spring来创建对象以及对象之间的调用。最主要的作用就是降低耦合度。传统方式: class A{ ...
2021-10-19 15:50:09
58
原创 Spring5之事务
事务概念 1.什么是事务 (1)是数据库操作最基本的单元,逻辑上的一组操作,要么都成功,要么全失败 (2)典型场景:银行转账 2.事务特性 (1)原子性(要么都成功,一个失败都失败) (2)一致性(总量相同) (3)隔离性(多个事务之间互不影响) (4)持久性(比如数据发生改变是永久性的) 事务操作(环境搭建) 1.创建数据库表,添加记录 2.创...
2021-10-19 15:12:31
120
原创 谷粒学院之阿里云oss存储模块
子模块service_oss阿里云上注册,然后开通oss对象存储,充一点钱1.创建bucket2.上传文件到阿里云oss第一步创建许可证AccessKey,AccessKey ID 和 AccessKey Secret 是访问阿里云 API 的密钥,具有该账户完全的权限。然后通过手机号验证查看并保存id和秘钥。第二步引入依赖<dependency> <groupId>com.aliyun.oss</group..
2021-10-13 16:41:13
424
1
原创 遇到的问题
前端发送post请求遇到405的问题所有的路径包括请求的方式都没有问题,问题在于ajax往服务端发送了一次请求,之后表单也发送了请求,我们需要阻止表单发送请求,return false;
2021-10-12 16:09:45
67
原创 easyExcel
第一步引入依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version></dependency><!--xls--><dependency> <groupId>org.apache
2021-10-11 15:46:13
326
原创 ajax的多种实现
先安装nodejs再使用express框架1.初始化项目npm init -y2.安装expressnpm i express3.使用express创建服务端的规则。 //1. 引入express const express = require('express'); //2. 创建应用对象 const app = express(); //3. 创建路由规则 // request 是对请求报文的封装 // response 是对响应报文的封装 app.g
2021-10-09 22:15:45
88
原创 vue-admin-template模板
将模板解压到vscode工作区1.进入到终端,根据他的package.json文件安装依赖 npm install2.启动项目npm run dev默认端口号9528项目结构config: 1.首先先将config里 的index.js里的useEslint改为false,这个true表示开启代码格式检查,太严格了所以关闭 2.config里的dev.env.js里的BASE_API修改访问的本地的接口的地址src:...
2021-10-08 13:37:16
263
原创 nodejs以及npm以及babel以及module以及webpack
类似于java的jdk,是JavaScript的运行环境安装后可以不通过页面来执行js代码,可以用命令行执行node xx.js安装文件在d盘里有,用node -v测试是否安装成功问题一:vscode打开控制台用node -v没出现版本号解决将vscode以管理员身份运行npm是nodejs的包管理技术类似于maven,可以管理下载js的依赖安装npm(在安装nodejs时npm已经装上了)查看是否安装 npm -v使用:1.初始化项目npm...
2021-10-08 10:43:15
256
原创 axios
axios是一个独立的项目,通常和vue一起使用,实现ajax操作首先要引入vue.js和axios.js其次启动后端服务以及开启跨域访问权限 <div id="app"> <table width="80%" align="center" border="1px"> <tr> <td>name</td> <td>
2021-10-06 21:59:17
80
原创 vue入门
首先要引入Vue的js文件vue.js<scriptsrc="vue.js"></script>示例 <div id="app"> <!-- ${}el表达式在Vue中是{{}}插值表达式 --> {{message}} </div><script> new Vue({ el:'#app',//绑定Vue的作用域 data:{..
2021-10-06 21:44:17
60
原创 es6入门
es6的代码简洁,缺点是浏览器的兼容性不好,所以写好es6代码以后要转为es5来运1.var定义全局变量,let定义局部变量2.var可以定义多个相同变量,let只能定义一个3.const定义常量必须初始化,声明以后不能再改变4.传统写法 let a=1,b=2,c=3 数组解构(es6写法) let [x,y,z]=[1,2,3]5.模板字符串:`这个符号可以使用el表达式获取变量值${name}或者调用方法${a()} `xxx=${name}` ...
2021-10-06 17:39:55
57
原创 统一日志处理
# 设置日志级别 OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALLlogging.level.root=INFO默认就是INFO级别logback是springboot自带的日志框架(用法和log4j类似)不仅可以在控制台输出还可以输出在文件里用法:1.先把之前在application.properties所有的日志配置删掉2.在resources下建logback-spring.xml(名字必须一样)内容为:<?xml vers..
2021-10-06 17:14:56
147
原创 统一返回数据格式
自定义的返回的数据格式如下,以后工作可能是类似的数据格式可以将这个也放在一个公共模块里,类似swagger一样通过引入模块来用这个公共类import io.swagger.annotations.ApiModelProperty;import lombok.Data;import java.util.HashMap;import java.util.Map;//统一返回结果@Datapublic class R { @ApiModelProperty(value = .
2021-10-05 18:31:33
205
原创 swagger
可以把swagger整合到公共模块,方便使用,但只有一个模块就不用这么麻烦了第一步引入依赖 <!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <scope>p
2021-10-04 21:55:21
74
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人