介绍 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 应用范围 后端接口设计时是需要考虑登录认证,除了注册、登录和注销等特殊操作外,其他的请求都需要进行校验是否登录、
配置日志打印sql方式一,设置mybatis日志输出类#输出查询结果,注意,这个类实现是用system.out输出的,打印到了控制台上。 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl #不输出查询结果,设置这个类,还需要设置dao所在包级别=debug #mybatis.configuratio
1.关联分析2对比分析 3聚类分析 4留存分析 5帕累托分析 6象限分析 7.ABtest 8漏斗分析 9路径分析
如果当前同时运行的线程数量达到最大线程数量并且队列也已经被放满了任务时,ThreadPoolTaskExecutor 定义一些策略:ThreadPoolExecutor.AbortPolicy: 抛出 RejectedExecutionException来拒绝新任务的处理。ThreadPoolExecutor.CallerRunsPolicy: 调用执行自己
1、利用 guava 的 ThreadFactoryBuilderThreadFactory threadFactory = new ThreadFactoryBuilder() .setNameFormat(threadNamePrefix + "-%d") .setDaemon(true)
/** * 用给定的初始参数创建一个新的ThreadPoolExecutor。 */ public ThreadPoolExecutor(int corePoolSize,//线程池的核心线程数量 int maximumPoolSize,//线程池的最大线程数 long keepAliveT
import java.text.SimpleDateFormat; import java.util.Random; public class ThreadLocalExample implements Runnable{ // SimpleDateFormat 不是线程安全的,所以每个线程都要有自己独立的副本 private static final ThreadLocal<Simple
幂等性是什么?幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。接口为什么要实现幂等? 前端重复提交选中的数据,后台只产生对应这个数据的一个反应结果。一、幂等常用思路token机制 当客户端请求页面时,服务器会生成一个随机数token,并且将to
乐观锁一般会使用版本号机制或 CAS 算法实现,CAS 算法相对来说更多一些,这里需要格外注意。#版本号机制一般是在数据表中加上一个数据版本号 version 字段,表示数据被修改的次数。当数据被修改时,version 值会加一。当线程 A 要更新数据值时,在读取数据的同时也会读取 version 值,在提交更新时,若刚才读取到的 version
uniqueInstance 采用 volatile 关键字修饰也是很有必要的, uniqueInstance = new Singleton(); 这段代码其实是分为三步执行:为 uniqueInstance 分配内存空间初始化 uniqueInstance将 uniqueInstance 指向分配的内存地址但是由于 JVM 具有指令重排的特性,执行顺序有可能变成 1->3->2。指
public class DeadLockDemo { private static Object resource1 = new Object();//资源 1 private static Object resource2 = new Object();//资源 2 public static void main(String[] args) { ne
在使用 java.util.stream.Collectors 类的 toMap() 方法转为 Map 集合时,一定要注意当 value 为 null 时会抛 NPE 异常。@Data class Person { private String name; private String phoneNumber;
如果看过 HashSet 源码的话就应该知道:HashSet 底层就是基于 HashMap 实现的。(HashSet 的源码非常非常少,因为除了 clone()、writeObject()、readObject()是 HashSet 自己不得不实现之外,其他方法都是直接调用 HashMap 中的方法。HashMapHashSet实现了 Map 接口实现 Set 接口存储键值对仅存储对象调用 put
在pom文件中添加<build> <!--打包成jar包时的名字--> <finalName>xxxxx</finalName> <plugins> <plugin> <groupId>org.springfra
目录背景最终操作(terminal operation)peek() vs forEach()peek() 的典型用法:协助调试小结参考链接背景这周遇到了一件很有意思的事情。在看项目代码时,发现了这么一段:return objects.stream() .peek(object -> addInfo(object, someParams)) .collect(
import java.util.Scanner; public class GreenConsoleOutput { public static void main(String[] args) { // 创建一个Scanner对象用于接收用户输入 Scanner scanner = new Scanner(System.in);
jdk1.8为我们提供了String.join()方法几个使用的例子。让我们在项目灵活的使用它,使代码更加优美package com.niu.demo; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @description: String.Join的使用 * @updat
直接new对象就叫正射如下Map<String, String> map = new HashMap<>(); map.put("蔡徐鸡","唱跳rap篮球");正射,LinkedHashMap效果更好,然后你修改代码Map<String, String> map = new LinkedHashMap<>(); map.put("两年半","唱跳r
一、文件的上传1、前端html上传文件(1)html代码:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="https:
public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intValue=arr[5]; //System.out.println(intValue); //创建数组的第二种方法 int[] x={1,2,3,4}; //System.out.println(x[1]); //创建数组的第三种
java static变量可以修改。凡是变量,它的值就可以被修改。Java 中的 static 使用之静态变量大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望该类所有的对象共享同一个成员。此时就是 static 大显身手的时候了。Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所
//文件大小 public class FileUploadInterceptor extends HandlerInterceptorAdapter { private long maxSize; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse r
//文件类型判断 public class FileTypeInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler)throw
用一个List 记录要删除的数据,最后removeAll(List);用for循环遍历,原始书写方式;用迭代器自带的remove方法,这也是官方推荐的方法。
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号