随笔分类 - JAVA
摘要:@Data @AllArgsConstructor public class Person { Integer id; Integer age; Integer type; public static void main(String[] args) { List<Person> persons =
阅读全文
摘要:具体现象及原理 这是一个挺有意思的讨论话题。 如果你运行下面的代码: Integer a = 1000, b = 1000; System.out.println(a == b); Integer c = 100, d = 100; System.out.println(c == d); 你会得到
阅读全文
摘要:背景 线上APP有一个下拉刷新的请求,大部分时间下拉刷新很快,偶发性下拉刷新请求接口特别慢,单独请求接口的时候都很快,怀疑是网络波动问题或者服务器带宽问题,因此有了这篇文章 一.复现请求慢的情况 二.charles相关知识 1.显示模式 (1) Structure形式如下图 优点:可以很清晰的看到请
阅读全文
摘要:如果你经常遇到 Java 线上性能问题束手无策,看着线上服务 CPU 飙升一筹莫展,发现内存不断泄露满脸茫然。别慌,这里有一款低开销、自带火焰图、让你大呼好用的 Java 性能分析工具 - async-profiler。 最近 Arthas 性能分析工具上线了火焰图分析功能,Arthas 使用 as
阅读全文
摘要:前言 在使用 Arthas 之前,当遇到 Java 线上问题时,如 CPU 飙升、负载突高、内存溢出等问题,你需要查命令,查网络,然后 jps、jstack、jmap、jhat、jstat、hprof 等一通操作。最终焦头烂额,还不一定能查出问题所在。而现在,大多数的常见问题你都可以使用 Artha
阅读全文
摘要:一.业务需求 方法中需要处理一定的业务逻辑,如果业务逻辑失败,则相关的业务操作回滚,同时记录一条错误日志 二.具体实现 //添加事务注解 @Transactional(rollbackFor = Exception.class) public void changeBookPrice(Book bo
阅读全文
摘要:spring基于注解的缓存 对于缓存声明,spring的缓存提供了一组java注解: @Cacheable:触发缓存写入。 @CacheEvict:触发缓存清除。 @CachePut:更新缓存(不会影响到方法的运行)。 @Caching:重新组合要应用于方法的多个缓存操作。 @CacheConfig
阅读全文
摘要:普通的增强for循环遍历时移出元素报错 package com.fridge.controller.cms; import java.util.ArrayList; import java.util.List; /** * @program: mythicalanimals * @descripti
阅读全文
摘要:一.问题 写公司项目时经常会出现鼠标箭头不停旋转,大概15S时间写不出代码,即便是反应过来也是隔几十S就又会出现一次。 于是我每次遇到这种情况就是重启IDEA,或者重启电脑 二.解决方法1,赋予更多的内存 1.定位配置文件 idea.vmoptions的位置 idea.vmoptions原来的内容
阅读全文
摘要:swagger中@ApiModelProperty注解example使用问题 example属性默认是String的, 对应List的支持不好 @ApiModelProperty(position = 2, example = "PRD1, PRD2, PRD3") // This generate
阅读全文
摘要:一.安装源 安装源地址: https://yum.postgresql.org/repopackages.php 根据如下地址确定适用的版本https://yum.postgresql.org/findingdistro.php [root@izm5e2q95pbpe1hh0kkwoiz ~]# c
阅读全文
摘要:项目结构如下: 将pom文件中的packaging的jar修改为war <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3
阅读全文
摘要:目录 一级缓存 二级缓存 自定义缓存 一级缓存 MyBatis 包含了一个非常强大的查询缓存特性,它可以非常方便地配置和定制。MyBatis 3 中的缓存实现的很多改进都已经实现了,使得它更加强大而且易于配置。mybatis默认情况下只会开启一级缓存,也就是局部的 session 会话缓存。 首先我
阅读全文
摘要:区别 1.使用范围和规范不同 filter是servlet规范规定的,只能用在web程序中. 拦截器即可以用在web程序中, 也可以用于application, swing程序中, 是Spring容器内的, 是Spring框架支持的 2.触发时机不同 顺序: Filter Servlet Inter
阅读全文
摘要:内部类和静态内部类 示例 结果 静态内部类使用方法 通过外部类访问静态内部类 创建静态内部类对象 内部类的使用方法 必须先实例化外部类,才能实例化内部类 两者区别 1. 内部类, 即便是私有的也能访问,无论静态还是非静态都能访问 可以访问封闭类(外部类)中所有的成员变量和方法 封闭类(外部类)中的私
阅读全文
摘要:Spring Boot 在服务器部署可以使用下面命令,这时使用 开头引入 spring 中的 application 的值,即可在命令行配置 Spring Boot。 java jar xxxx 0.0.1 SNAPSHOT.jar 我们可以通过在命令行增加配置的方式给 Spring Boot 添加
阅读全文
摘要:目录 工作原理剖析 自动配置生效 工作原理剖析 Spring Boot关于自动配置的源码在spring-boot-autoconfigure-x.x.x.x.jar中: Spring Boot的启动类上有一个@SpringBootApplication注解,这个注解是Spring Boot项目必不可
阅读全文
摘要:1.SpringBoot配置文件 SpringBoot使用一个以application命名的配置文件作为默认的全局配置文件。支持properties后缀结尾的配置文件或者以yml/yaml后缀结尾的YAML的文件配置。 以设置应用端口为例 properties文件示例(application.pro
阅读全文
摘要:一、概念 jar包:JAR包是类的归档文件,JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。 war包:war包是JavaWeb程序打的包,war包里面包
阅读全文
摘要:在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢 一般有两种方法 第一种是将本地jar包安装在本地maven库 第二种是将本地jar包放入项目目录中 这篇文章主要讲第二种方式,这又分两种情况,一种是打包jar包,第二种是打包war
阅读全文