![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
文章平均质量分 68
单人影i
这个作者很懒,什么都没留下…
展开
-
idea批量替换
【代码】idea批量替换。原创 2023-03-21 10:55:35 · 995 阅读 · 0 评论 -
java 静态方法里边如何使用spring的注入对象
大家都知道,Java静态资源(静态代码块,静态方法,静态属性)在类加载的时候进行加载,那么加载时机肯定是在spring对象注入之前的,所以我们在调用实际的静态方法时就会出现空指针。这种可能在实际开发中出现在我们的util工具类中.原创 2022-09-15 16:02:30 · 2858 阅读 · 0 评论 -
飞书机器人的使用
java通过飞书机器人发送报警信息原创 2022-08-20 16:51:26 · 953 阅读 · 0 评论 -
oracle/pg插入大量数据30万条
oracle/pg 插入大量数据原创 2022-08-18 18:01:47 · 1303 阅读 · 0 评论 -
SpringRetry异常重试
SpringRetry介绍:pom引入启动类上加注解需要重试的方法上Retry配置代码介绍:spring retry是从spring batch独立出来的一个能功能,主要实现了重试和熔断。当某一次网络请求失败时,能够重新进行尝试请求,解决某一时间的网络问题导致整个请求失败。常见应用场景:(1)微服务之间的feign接口retry(2)微服务与第三方服务之间API对接的retry(3)服务与database之间的retrypom引入 <dependency&g原创 2021-08-24 10:50:39 · 546 阅读 · 0 评论 -
redis问题
redis问题缓存穿透:缓存雪崩:缓存穿透:什么叫缓存穿透: 缓存穿透是指查询一个一不存在的数据。例如:从缓存redis没有命中,需要从mysql数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。解决方法:1.缓存空. 如果查询数据库也为空,直接设置一个默认值 比如 空值(空字符,空数组, 空对象) 存放到缓存,这样第二次到缓冲中获取就有值了,而不会继续访问数据库。设置一个过期时间60s或者维护有值的时候将缓存中的值替换掉即可。可以给key原创 2021-06-06 18:37:12 · 150 阅读 · 0 评论 -
springboot启动注解过程
springboot运行原理1、启动器2、主程序1、启动器<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency> springboot-boot-starter:就是springboot的场景启动器。springboot将所有的原创 2021-02-24 13:06:42 · 797 阅读 · 1 评论 -
SpringBoot配置数据源
目录springboot整合mybatis自定义数据源DruidDataSourcespringboot配置多数据源并动态切换springboot整合mybatis导入mybatis的依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <ve原创 2020-11-16 01:03:20 · 159 阅读 · 1 评论 -
ThreadPool笔记
目录单线程化线程池newSingleThreadExecutor:可控最大并发数线程池(newFixedThreadPool)可回收缓存线程池(newCachedThreadPool)支持定时与周期性任务的线程池(newScheduledThreadPool)单线程化线程池newSingleThreadExecutor:单线程化线程池(newSingleThreadExecutor)的优点,串行执行所有任务。如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按原创 2020-10-10 00:01:33 · 141 阅读 · 0 评论 -
java 队列 笔记
Queue# CocurrentLinkedQueue定义:一个基于链接节点的无界线程安全队列。此队列按照 先进先出 原则对元素进行排序。队列的头部 是队列中时间最长的元素。队列的尾部 是队列中时间最短的元素。新的元素插入到队列的尾部,队列获取操作从队列头部获得元素。当多个线程共享访问一个公共 collection 时,ConcurrentLinkedQueue 是一个恰当的选择。此队列不允许使用 null 元素。常用方法:offer:将指定元素插入此队列的尾部。poll:获取并移原创 2020-09-27 11:06:56 · 136 阅读 · 0 评论 -
map stream流根据key排序
import com.google.common.collect.Maps;import java.util.Map;/** * @program: map排序工具类 * @description: * @author: zhang.wenlong * @create: 2020/7/13 **/public class MapOrderByUtils { /** * @Description: 根据map的key排序 * @Author wenlong..翻译 2020-08-16 12:49:52 · 3386 阅读 · 3 评论 -
mybatis.一对一,一对多
使用mybatis一对多: 使用collection 标签:collection属性: property: 指的是集合属性的值. ofType:指的是集合中元素的类型. <collection property="products" ofType="com.xx.xxx"></collection>例:在resultMap标签中 <collection property="teachers" ofType="com.原创 2020-07-04 19:51:30 · 203 阅读 · 0 评论 -
mysql数据查询表名和注释
查询所有表名 select table_name from information_schema.tables where table_schema='数据库名称'; 查询数据库表名的注释: select table_name 表名,TABLE_COMMENT 表注释 from INFORMATION_SCHEMA.TABLES Where tab...原创 2020-02-25 10:04:19 · 4329 阅读 · 0 评论 -
java 1.8 Stream
stream: 是数据渠道,用于操作数据源(数组,集合等.)所产生的元素序列 集合讲的是数据,流讲的是计算. 并行: parallel 注意: stram 自己不会存储元素. stream 不会改变源对象,相反 他们会返回一个持有结果的新stream. stream 操作是延迟执行的,这意味着他们会等到需要结果的时候才执行. 使用步骤: 1.创建...原创 2019-12-08 23:28:06 · 707 阅读 · 1 评论 -
java 1.8 lambda表达式2
java8四大内置函数 consumer<T>: 消费型接口 void accept(T t) 示例: public static void main(String[] args) { use(1000, (m) -> System.out.println("本此消费了" + m + "元")); } /*...原创 2019-12-08 21:42:05 · 114 阅读 · 0 评论 -
java 1.8 lambda表达式1
java 1.8新特性 最核心lambda和stream Apilambda表达式箭头操作符 “->”左侧:lambda参数列表右侧:lambda表达式中所需要的功能. 即lambda体语法格式一:无参数:`public static void main(String[] args) {//注意事项,如果里面引用了局部变量 jdk1.7以前需要finally修...原创 2019-12-08 17:10:48 · 140 阅读 · 0 评论 -
java后端解决跨域问题
跨域问题最常见的因为前后端分离,浏览器的保护机制就产生了跨域问题vue前端: headers: {'Content-Type': 'application/x-www-form-urlencoded'}, baseURL: 'http://localhost:8090/', timeout: 5000, responseType: 'json', // 响应...原创 2019-12-07 22:51:12 · 455 阅读 · 1 评论 -
Spring的事务@transaction
事务传播行为,所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。在TransactionDefinition定义中包括了如下几个表示传播行为的常量 TransactionDefinition.PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。Tra...原创 2019-11-26 23:24:54 · 224 阅读 · 0 评论 -
SpringBoot使用log4j2进行日志管理
springboot如何使用log4j2进行日志管理,springboot应用默认的日志记录组件是logback. 为什么使用log4j2,其根本原因在于log4j2使用了LMAX, 一个无锁的线程间通信库代替了, 并发性能大大提升. 优点: 丢数据这种情况少,可以用来做审计功能。而且自身内部报的exception会被发现,但是logback和log4j不会。 log4j2使用...原创 2019-11-24 14:54:43 · 875 阅读 · 0 评论 -
java 空对象代码优化 jdk1.8
空集合 --> CollectionUtils.isEmpty(); 空对象 判断对象是否为空 Objects.isNull(); 在加判断 使用Optional优化 --> 它只适用于”是否存在”的场景。 只有当考虑对象返回null是合理的情况下,才进行Optional的返回. 集合不建议使用 ifPresent()方法:检查是否有值的另...原创 2019-11-20 14:19:18 · 848 阅读 · 0 评论 -
linux redis相关命令
登录服务器, 找到redis-cli 用./redis-cli或者redis-cli -c 都可以 输入auth 密码 --> auth空格密码回车 如果是简单的数据 就用: getkey hash的话: hmget key field 根据可以和field 查询数据 hgetall key 返回所以的可以 和 所有的valu...原创 2019-11-19 17:56:24 · 366 阅读 · 0 评论 -
SpringBoot2.0搭配swagger2生成接口文档
版本: Spring Boot:2.0.5 Swagger2:2.7.0 maven依赖: <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifac...原创 2019-04-14 23:35:56 · 271 阅读 · 0 评论 -
百度云API刷脸
刷脸登录是基于人工智能、生物识别、3D传感、大数据风控技术,最新实现的登录形式。用户在无需输入用户名 密码的前提下,凭借“刷脸”完成登录过程。实现刷脸登录的核心是人脸处理,在人脸处理中有两个概念: 人脸检测:检测图中的人脸,并为人脸标记出边框。检测出人脸后,可对人脸进行分析,获得眼、口、鼻轮 廓等72个关键点定位准确识别多种人脸属性,如性别,年龄,表情等信息 人脸识别(对比):通过提取...原创 2019-04-25 23:14:56 · 1399 阅读 · 0 评论 -
自定注解,导出Excel
poi的依赖 <dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> ...原创 2019-04-21 21:49:30 · 659 阅读 · 0 评论 -
IHRM项目二章_数据库设计
多租户 多租户技术(Multi-TenancyTechnology)又称多重租赁技术:是一种软件架构技术,是实现如何在多用户环境下 (此处的多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。简单讲: 在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。从定义中我们可以理解:多租户是一种架 构,目的是为了让多用户环境下使用同一套程序,且保证用...原创 2019-04-09 00:07:40 · 558 阅读 · 0 评论 -
IHRM项目一章_搭建项目
开发环境 JDK1.8 数据库mysql 5.7 开发工具 idea 2018.1 maven版本3.5.2 搭建一个父工程,两个子模块. 新建项目 点击file-->new-->project-->maven-->next 然后修改项目文件路径,生成项目. 修改项目的maven配置 因为是父工程并不会有具体的代...原创 2019-04-07 12:22:32 · 2524 阅读 · 0 评论 -
java自定义异常
CMS页面管理 在统一异常处理类中去捕获异常,无需controller捕获异常,向用户返回统一规范的响应信息.一般为json格式 异常处理流程 自定义异常类型。 自定义错误代码及错误信息。 对于可预知的异常由程序员在代码中主动抛出,由SpringMVC统一捕获。 可预知异常是程序员在代码中手动抛出本系统定义的特定异常类型,由于是程序员抛出的异常,通常异常信息比较 ...原创 2019-04-03 23:38:34 · 900 阅读 · 0 评论 -
SpringCloud的Eureka
Eureka 类似zokeerper的功能.提供服务注册中心来管理微服务信息. 用处: 1、微服务数量众多,要进行远程调用就需要知道服务端的ip地址和端口,注册中心帮助我们管理这些服务的ip和 端口。 2、微服务会实时上报自己的状态,注册中心统一管理这些微服务的状态,将存在问题的服务踢出服务列表,客户 端获取到可用的服务进行调用。 Eureka提供服务端与客...原创 2019-03-17 14:24:02 · 1093 阅读 · 0 评论 -
七牛云存储
1.申请账号. 用邮箱账号2.创建存储空间 Bucket 七牛云是按照存储空间来管理的.--> 创建存储空间, 需要实名认证,需要上传身份证件和 支付宝授权登录.3.七牛云的maven依赖.<dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-j...原创 2019-03-06 22:14:57 · 372 阅读 · 0 评论 -
DataURL
DataURL概述:是指data类型的url格式,目的是对于一些"小"的数据,可以在网页中直接嵌入,而不是从外部文件直接载入.语法:完整的DataURL语法:DataURL=data:mediatype:base64,<Base64编码的数据>.mediatype:base64 可以省略。但是如果要浏览器解析就要带上。mediatype:表述传递的数据的MIM...原创 2019-03-06 21:56:06 · 1699 阅读 · 0 评论 -
文件断点续传
断点续传: 通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大 小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了,电断了没 有上传完成,需要客户重新上传,这是致命的,所以对于大文件上传的要求最基本的是断点续传. 流程: 上传前先把文件分块 一块一块的上传,上传中断后重新上传,...原创 2019-04-27 20:20:54 · 265 阅读 · 0 评论 -
MyBatis-Plus
@[TOC](文章目录) #简介 Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网。那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于...原创 2019-09-15 12:39:37 · 1040 阅读 · 0 评论 -
SpringBoot集成redis
1.导入依赖 <!-- springboot整合redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> ...原创 2019-08-24 23:40:20 · 180 阅读 · 0 评论 -
idea下载及汉化
安装软件和汉化插件下载地址 链接:https://pan.baidu.com/s/1ftvTcFvx0ett7IQhU7Hltg 提取码:b43t 复制这段内容后打开百度网盘手机App,操作更方便哦 现在安装idea--> 基本大家都会 汉化: 不是很建议使用汉化版本的.但是原界面对新手不是很友好,也有人说汉化后的界面有的按钮会报错,算了..开始正题吧 先把汉化文件夹...原创 2019-10-07 22:57:19 · 3329 阅读 · 0 评论 -
java多线程
进程与线程 进程:QQ,微信等软件 程序(任务)的执行过程(动态性的), 持有资源(共享内存,共享文件) 和线程-->载体 资源: --> 内存 线程: 例如:QQ 同时文字聊天.收发文件 如果班级是进程的话, 每一个学生就是一个线程 属性: 线程是系统中最小的执行单元 同一进程中有多个线程...原创 2019-10-10 00:38:46 · 90 阅读 · 0 评论 -
Elastic Stack 进阶
全文搜索 倒排索引 倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(invertedindex)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted fifile)。 ...原创 2019-09-24 01:21:49 · 199 阅读 · 0 评论 -
WebMagic抓取数据
WebMagic 官网 http://webmagic.io/ 导入依赖 <dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>0.7.3...原创 2019-10-03 22:57:07 · 1139 阅读 · 0 评论 -
Elastic Stack入门
Elastic Stack简介 如果你没有听说过Elastic Stack,那你一定听说过ELK,实际上ELK是三款软件的简称,分别是ElasticsearchLogstash、Kibana组成,在发展的过程中,又有新成员Beats的加入,所以就形成了Elastic Stack。所以说,ELK是旧的称呼,Elastic Stack是新的名字。 官网:https:/...翻译 2019-09-15 18:38:44 · 8936 阅读 · 0 评论 -
复制两个对象字段类型一样,属性(字段名)不一样
两个字段不一样的对象复制 思路:自定义注解获取目标实体类和源实体类的对应关系.通过反射获取值和赋值. 自定义注解 /** * 对象拷贝注解(自定义注解) */@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)public @interface CopyField { /** * ...原创 2019-07-25 11:51:46 · 4231 阅读 · 0 评论 -
代码优化
1.抽取insertOrUpdate方法. 用id来判断是否为空.2.传参的数据类型不要太大.尽量精简.达到复用.3.返回值在biz层的时候不要用Response. 不要给自己挖坑.4.代码逻辑复用,5.写法优化,不要有过多的if, 习惯用if反写来做判断.6.查询的方法放在上面.7.要写日志数据.8.循环的时候不要使用trycatch.要放在最外层.9.循环内部...原创 2018-08-16 19:27:13 · 263 阅读 · 0 评论