- 博客(13)
- 资源 (2)
- 收藏
- 关注
原创 SpringBoot 整合 FastDFS 中间件,实现文件分布式管理
一、FastDFS简介分布式文件系统FastDFS:是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成,作为一个分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题,特别适合中小文件(建议范围:4KB < file_size <500MB),对以文件为载体的在线服务,如相册网站、视频网站等等具有显著的效果。
2021-07-02 14:17:22 841
原创 Java日期时间处理-Calendar、LocalDateTime
DateCalendarLocalDateTime一、System.currentTimeMillis()获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响,得到的结果是时间戳格式的。例如:public static void main(String[] args) { long l = System.currentTimeMillis(); System.out.println(l);}//print:16239830..
2021-06-21 18:09:01 3889
原创 Spring Aop 自定义注解的方式记录系统日志信息
我们在日常编程中,应该保持高内聚,低耦合,函数功能单一,代码可复用性,可移植性性高。当涉及到日志,缓存等功能是,我们可以根据业务需求,利用spring aop面向切面编程,把核心的功能和附加功能剥离开来使代码达到高复用的效果,比如用注解记录操作日志。为了避免无代码侵入并实现通用,于是定义一个注解,如果要统计哪个方法,只需在方法上标记上注解即可,通过注解可以获取到方法的参数、方法名、返回值等等信息。一、引入相关依赖 <dependency> <groupId&g.
2021-04-07 14:51:18 1087
原创 SpringBoot 如何执行定时任务
SpringBoot 如何执行定时任务工作中有需要应用到定时任务的场景,一天一次,一周一次,一月一次,一年一次,做日报,周报,月报,年报的统计,以及信息提醒,等,spring boot 提供了一个两种方式实现定时任务。一、静态定时任务—基于注解SpringBoot 中的 @Scheduled 注解为定时任务提供了一种很简单的实现,只需要在注解中加上一些属性,例如 fixedRate、fixedDelay、cron(最常用)等等,并且在启动类上面加上 @EnableScheduling 注解,就可
2021-03-29 16:23:21 9356 1
原创 @Async注解实现异步调用
@Async默认异步配置使用的是SimpleAsyncTaskExecutor,该线程池默认来一个任务创建一个线程,在大量的请求的时候,这时就会不断创建大量线程,极有可能压爆服务器内存@Async的时候一定要设置线程数,以防万一OOM 异步调用,类似我们多年前的ajax调用,局部刷新,整体不变,当然,在java的后台的异步调用,类似于自己实现一个多线程的程序,任务开启一个线程后由它最去执行,我们其实是不能干预太多的。。 在实际的开发中,如果某一个方法需要异步去执行,那么我们可以在.
2021-03-26 19:26:43 2905 3
原创 CountDownLatch作用及使用场景
概念CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。CountDownLatch的用法CountDownLatch典型用法1:某一线程在开始运行前等待n个线程执行完毕。将CountDownLatch的计数器初始化为n new CountDownLatch(n) ,每当一个任务线程执行完毕,就将计数器减1 countdownlatch.countDown(),当计数器的
2021-02-01 16:13:50 3267
原创 CompletableFuture实现异步任务
CompletableFuture 是 Future API的扩展。Future 被用于作为一个异步计算结果的引用。提供一个 isDone() 方法来检查计算任务是否完成。当任务完成时,get() 方法用来接收计算任务的结果。项目需求:项目中需要优化一个接口,这个接口需要拉取2,3个第三方接口,需求延迟时间小于200ms;技术选型:在Java中CompletableFuture用于异步编程,异步编程是编写非阻塞的代码,运行的任务在一个单独的线程,与主线程隔离,并且会通知主线程它的进度,成功或者失败
2021-02-01 15:30:30 2248
原创 java 实现多线程几种方式
java多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread类实现多线程继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一
2021-02-01 15:29:14 2286
原创 Java 多线程实现方式、如何使用 CompletableFuture 完成异步任务
多线程的实现、CompletableFuture异步任务、@Async注解异步调用一、异步和多线程有什么区别?其实,异步和多线程并不时一个同等关系,异步是目的,多线程只是我们实现异步的一个手段.什么是异步?异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回.实现异步可以采用多线程技术或则交给另外的进程来处理多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别
2021-01-22 17:51:56 2493
原创 SpringBoot 使用 Thymeleaf 如何发送带模板的Email邮件
springboot+Thymeleaf实现发送Email模板邮件如何在Spring Boot 应用中发送邮件以及使用非常简单强大的Thymeleaf模板引擎来制作邮件内容。一、授权码常用的电子协议有POP3,SMTP,IMAP,协议的具体区别就不进行详细介绍了。这里选择smtp协议进行演示。登录邮箱,在设置中找到协议地址,点击开启。授权码只会显示一次,需要保存好。下面是126邮箱对应的三种协议主机地址:smtp.126.compop.126.comimap.126.com二、导入pom依
2021-01-15 16:42:12 6707
原创 如何使用SmartApplicationListener有顺序的监听同一个事件Event
Spring boot 有序事件监听器用户注册发送邮件首先创建一个事件,监听都是围绕着事件import com.tellhow.meinergy.pot.base.client.model.vo.UserVO;import lombok.Getter;import org.springframework.context.ApplicationEvent;/** * 用户创建事件 * * @author arjun * @date 2020/12/09 */@Getterpubli
2020-12-09 17:16:37 2778 2
原创 SpringBoot Security用户认证成功或失败监听处理
Spring boot Security 用户认证成功失败事件监听器ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解精,提高可扩展性以及可维护性。事件发布者并不需要考虑谁去监听,监听具体的实现内容是什么,发布者的工作只是为了发布事件而已。一、@EventListener注解方式注解方式比较简单不需要实现任何接口,代码如下:import org.springframework.co
2020-12-09 10:16:00 2752
原创 自定义异常类
自定义异常类自定义异常package com.es.test.exception;import com.es.test.util.ResponseCodeEnum;/** * 自定义异常(CustomException) * * @author arjun * @date 2020/7/27 13:59 */public class CustomException extends RuntimeException { private String code; /
2020-07-27 15:10:48 1094
提供 nacos-server-1.4.2 Windows和Linux版本下载
2021-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人