
笔记
L丶小胖
励志成为一个不写if的程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot启动时自动执行代码的几种方式
在开放SpringBoot项目时, 需要在启动后加载一些资源,或者是把一些热数据放到缓存中如果不需要使用到springIOC中的bean时, 可以用 static ,或者是构造方法加载这些资源如果需要使用IOC中的bean时1. @PostConstructPostConstruct注解使用在方法上,这个方法在对象依赖注入初始化之后执行。2. CommandLineRunner 和 ApplicationRunnerSpringBoot提供了两个接口来实现Spring容器启动完成后执行的功能,两原创 2022-04-29 09:54:05 · 344 阅读 · 0 评论 -
springboot中使用RabbitMq根据配置文件中定义队列名,实现动态创建多个队列并绑定到fanout交换机上
需求:接收第三方回调消息, 两个独立的服务上分别消费这条消息yml配置:rabbitmq: fanout: exchangeName: test # 解除绑定队列名称(解除后,会在增加和绑定 queueName中的队列) # 防止queueName中减少队列时,仍然存在绑定的关系 unbindQueueName: test1,test2 # 增加队列 & 绑定队列名称 queueName: test1,test2配置类:@Config原创 2021-11-27 12:57:00 · 3085 阅读 · 0 评论 -
记一次Optional使用不小心才明白orElse与orElseGet两个方法的区别
@Testpublic void main(){ // 首先使用的orElse, 出问题的地方使用的也是orElse // 输出结果: 111111->666 // 使用 orElse不管你前面得到的值是不是null,都会调用这个方法, 因为orElse方法需要一个具体的值 System.out.println(Optional.ofNullable("1").map(a -> "666").orElse(this.a())); // 输出结果:666 // 使用or原创 2021-08-24 15:46:24 · 1623 阅读 · 0 评论 -
利用java8的并行流实现多个接口同时请求,并合并结果
需求: 获取3个有一定关联的业务接口的数据并返回接口返回数据格式:A: {“msg”:“操作成功”,“success”:true,“AStatus”:7}B: {“msg”:“操作成功”,“success”:true,“BStatus”:1}C: {“msg”:“操作成功”,“C2Status”:null,“success”:true,“CStatus”:“1”}主要需求就是获取几个状态主代码public RefreshMemberResult refreshMember(RefreshMem原创 2021-04-24 19:00:10 · 5139 阅读 · 0 评论 -
java利用后置通知和反射,删除参数中已经用过的文件
需求: 文件存在阿里的oss中, 需要把文件上传到另外一个系统中除了把OSS中的文件下载到本地,不知道其他能获取到File对象的办法,但是往其它服务上传过文件这个本地的文件又没有其它用处了,故而卸磨杀驴其中工具均为: Hutool上传对象:@Datapublic class InsertAudio extends Audio{ /** * 音频名称 * 必填: true */ private String ringName; /**原创 2021-04-12 20:05:46 · 257 阅读 · 0 评论 -
一个注解实现测试环境不执行定时任务
使用@ConditionalOnProperty注解,实现测试环境不加载定时任务原创 2021-03-18 16:21:51 · 902 阅读 · 1 评论 -
封装集合Stream常用功能,让代码更简洁,不依赖任何第三方,复制即用
提前最大家,牛年大吉,代码无Bugimport java.util.*;import java.util.function.*;import java.util.stream.Collectors;import java.util.stream.Stream;/** * @Author: 小胖 * @Version: 1.0 * @Description: 集合流工具类 * @Date: 2021/02/09 09:10 **/@SuppressWarnings("all")pu原创 2021-02-10 10:00:59 · 767 阅读 · 8 评论 -
妈妈再也不用担心我会出现NullPointerException空指针了,java处理空指针,java利用Lambda处理空指针
实体类:public class User{ private User son; // 忽略get set }测试:@Testpublic void test1(){ User user = new User(); // 这样获取难免会出现空指针 user.getSon().getSon().getSon().getSon().getSon(); // 先判断再获取 if(null != user.getSon() &&原创 2021-02-01 13:10:39 · 1057 阅读 · 8 评论 -
封装爬取到的页面信息为Java对象,Java反射应用,java工作中函数式接口用法,实际封装函数式传值方法
该功能为解析html页面上的表格原方法:private List<String> getFieldName(Class clazz){ // 通过反射获取 clazz 中的所有属性名称 return Stream.of(ReflectUtil.getFields(clazz)).map(Field::getName).collect(Collectors.toList()) }private Elements getElements(String html)原创 2021-01-24 13:34:27 · 513 阅读 · 0 评论 -
自己实现aop切面,发生指定异常重新调用当前方法
先创建一个自定义注解@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface ApiException{ /** * 模块 */ public String title() default ""; /** * 允许请求的次数 * @return */ public int apiNumber(原创 2020-12-21 13:32:44 · 1396 阅读 · 3 评论 -
从一个集合中找出某个数最相近的数字
/** * 获取集合中最接近的数 * @param number 需要查找的数字 * @param numbers 数字集合 * @param flag 如果有两个相近的数据 true:选择大数 false:选择小数 * @param <T> 必须为数字类型 * @return 相近结果 */ public <T extends Number> T getSimilarNumber原创 2020-12-20 01:17:06 · 3528 阅读 · 3 评论