随笔分类 - Java
摘要:现象: 用list存储User对象信息,当存储多个对象时,发现存储的数据都是一样的 之前代码: User user = new User(); List<User> list = new ArrayList<>(); for (int i = 0; i < 5; i++) { user.setNam
阅读全文
摘要:判断图片真实格式的方法,文件格式不是看后缀名,而是看文件头的定义 public class ImgUtil { public static String imgType(InputStream inputStream) throws IOException { // 读取文件前几位 byte[] f
阅读全文
摘要:在多线程编程中,线程安全是一个重要的概念。ThreadLocal 是一个用于实现线程安全的机制,它通过为每个线程提供独立的变量副本来保证线程安全。 在本文中,我们将深入探讨 ThreadLocal 的工作原理,以及它是如何保证线程安全的。 ## 什么是 ThreadLocal? ThreadLoca
阅读全文
摘要:import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream; import java.io.IOException; p
阅读全文
摘要:// 创建条件对象 Criteria criteria = new Criteria(); // 3. 单个条件查询多个字段 (客户编号) if (StringUtils.isNotEmpty(bo.getAdmpId())) { criteria.orOperator( Criteria.wher
阅读全文
摘要:1.去官网(https://github.com/docker/compose/releases)下载docker-compose-linux-x86_64,自行选择最新版或者所需要的版本即可 建议直接通过curl下载到服务器上,若内网服务器就只能通过上传了,下面附上本人下载连接(GitHub太慢了
阅读全文
摘要:1.AOP实现知识点 核心思想:动态代理。 支持技术:反射。 2.官方文档名词解释 Aspect(切面):关注点的模块化(新增业务的模块化)。为完成新业务而编写的类对象。(带@Aspect注解的类)。 Join point(连接点):新业务的实现,通知到了我们该干点什么。 Advice(通知)
阅读全文
摘要:public void afterReturning(JoinPoint joinPoint) { // 下面两个数组中,参数值和参数名的个数和位置是一一对应的。 Object[] args = joinPoint.getArgs(); // 参数值 String[] argNames = ((Me
阅读全文
摘要://重点关注的是@Transactional注解和TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()@Override @Transactional(rollbackFor = RuntimeException.
阅读全文
摘要:HashMap中将要存放的KV个数的时候,设置一个合理的初始化容量可以有效的提高性能 初始化集合时,阿里巴巴的开发手册当中也推荐指定容量 HashMap默认初始容量:16 (即2<<3) HashMap<String, Object> map = new HashMap<>(expectedSize
阅读全文
摘要:问题代码: List<User> user = null; 在使用List的addAll方法的时候,如果被添加的对象是null,就会报空指针异常,原因是只在栈中有引用而在堆中没有分配到内存空间 改为: List<User> user = new ArrayList<User>(); 问题解决
阅读全文
摘要:StringBuffer stringBuilder=new StringBuffer("f7504588c65a4b99bc20cf1646f58ef1"); stringBuilder.insert(8,"-"); stringBuilder.insert(12,"-"); stringBuil
阅读全文
摘要:目录 一、瞅一眼标准的AspectJ Aop的pointcut的表达式 二、SpringAop的十一种AOP表达式 三、演示使用 1、execution: 2、within: 3、this: 4、target: 5、args: 6、@target: 7、@args: 8、@within: 9、@an
阅读全文
摘要:不同点 项过滤器拦截器使用场景对请求/响应进行修改、判断等。一般用于过滤参数、登录权限验证、资源访问权限控制、敏感词汇过滤、字符编码转换。在service或者一个方法前/后调用一个方法,或者在方法后调用一个方法。能力 可以拿到原始的http请求与响应,拿不到请求的控制器和请求控制器中的方法的信息。
阅读全文
摘要:@Controller 注解一个类表示控制器,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View,Spring MVC会自动扫描标注了这个注解的类 @Cont
阅读全文
摘要:解决方案:在@RequestMapping中加入produces="text/html;charset=UTF-8" 属性即可,如下图所示
阅读全文
摘要:1. 仅是判断是否存在时,select count 比 select 具体的列,更好。 我们经常遇到类似的业务场景,如,判断某个用户userId是否是会员。 (反例): 一些小伙伴会这样实现,先从用户信息表查出用户记录,然后再去判断是否是会员: <select id="selectUserByUse
阅读全文
摘要:错误的SQL语句 为了排序,自然而然地想到了关联子查询。把原表跟自身关联,然后数出来每个地区集合中有多少个价格高于当前记录价格。如果有0个高于当前记录价格,就说明当前记录是该地区集合中价格最高的,ranking里就应该填入1;如果有1个高于当前记录价格,就说明当前记录的价格在该地区集合中排名第2……
阅读全文
摘要:1.数据库引擎是否支持事务(Mysql的MyIsam引擎就不支持事务) 2.注解所在的类是否注入spring容器中 3.注解所在方法是否为public修饰或者final(方法实现了接口是否为public,方法没有实现接口是否为final) 分析:这是由 Spring AOP 的本质决定的。如果你在
阅读全文
摘要:1.事务管理方式 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。 spring支持编程式事务管理和声明式事务管理两种方式。 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事
阅读全文