springboot启动时执行
发表于|更新于
|浏览量:
人生就象弈棋,一步失误,全盘皆输,这是令人悲哀之事;而且人生还不如弈棋,不可能再来一局,也不能悔棋。——弗洛伊德
springboot在启动时需要执行的代码
可以实现CommandLineRunner接口然后重写run方法,在run方法里执行
1 | package com.ruben.init; |
这样启动后就会输出启动完成了
相关推荐
2023-11-14
webclient模板变量
过于重视行为规则、拘泥形式,往往在事业上错失良机。——培根 今天分享在使用webclient进行开发时的的一个小技巧 例如这个方法: 1org.springframework.web.reactive.function.client.DefaultWebClient.DefaultRequestBodyUriSpec#uri(java.lang.String, java.lang.Object...) 此处如果直接使用: 1webClient.get().uri("/dev/v1/kicking-rule?appid={}", appId) 或者 1webClient.get().uri("/dev/v1/kicking-rule?appid=%s", appId) 哪怕 1webClient.get().uri("/dev/v1/kicking-rule?appid=%s", appId) 都是不行的。。。 正确的方式应该是: 1webClient.get().uri("/de...
2020-06-07
HashMap
HashMap是由数组和链表组合构成的数据结构。 大概如下,数组里面每个地方都存了Key-Value这样的实例,在Java1.7叫Entry,在Java1.8中叫Node。 因为它本身所有位置都为null,在put插入的时候会根据key的hash去计算一个index值。 就比如我put(”rubenwei”,666),我插入了为”rubenwei”的元素,这个时候我们会通过哈希函数计算出插入的位置,如果计算出来index是2,那就放在第三个位置 但我们知道数组长度是有限的,在有限的长度里面我们使用哈希,哈希本身就存在概率性,就是”rubenwei”和“ruben”我们都去hash有一定的概率计算出来的hashcode是重复的,这时候如果put“ruben”就会在当前entry节点下形成一个链表用于存放hashcode一样的这些元素 每一个节点都会保存自身的hash、key、value以及(next)下个节点 java8之前采用头插法,原有的值顺推到链表中去,新来的值变成链表表头,是因为代码作者认为新来的值会被查找的可能性大一点,为了提升查找的效率设计的 java8之后改用尾插法,...
2022-11-19
CompletableFuture在超时后,能够停止执行吗?
沉默可能产生误解,我需要说话,说话将我推向歧途,我必须沉默。赫塔·米勒——《国王鞠躬,国王杀人》 好问题,尝试一下 123456789101112import java.util.concurrent.CompletableFuture;import java.util.concurrent.ExecutionException;import java.util.concurrent.TimeUnit;import java.util.concurrent.TimeoutException;import java.util.stream.Stream;class Scratch { public static void main(String[] args) throws ExecutionException, InterruptedException, TimeoutException { CompletableFuture.runAsync(() -> Stream.generate(Object::new).forEach(...
2022-04-21
在SpringBoot单元测试中添加参数
我的肩上是风,风上是闪烁的星群。——北岛《结局或开始·献给遇罗克》 当时是解决一个issue而去查阅的 https://github.com/baomidou/mybatis-plus/issues/4417 最后代码如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566package com.ruben.mybatisplusissue;import javax.annotation.Resource;import org.junit.jupiter.api.Test;import org.junit.jupiter.api.extension.ExtendWith;import org.springframework.boot.SpringApplication;import org.springframework.boot.test.context.SpringBootCo...
2021-03-29
groupingBy
老老实实最能打动人心。——莎士比亚 你们可能知道Collectors.groupingBy是干嘛的了,没错分组 例如我们需要把用户根据age分组 1234SecureRandom random = new SecureRandom();List<User> users = random.ints(20,25).parallel().mapToObj(r -> User.builder().name(Faker.instance(Locale.CHINA).name().username()).age(r).build()).limit(20).collect(Collectors.toList());Map<Integer, List<User>> listMap = users.stream().collect(Collectors.groupingBy(User::getAge));listMap.forEach((k, v) -> System.out.println(k + ":" + v)); ...
2021-01-24
quartz
天下熙熙,皆为利来;天下攘攘,皆为利往。——《史记》 Quartz Job Scheduling Library是什么?Quartz是功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中-从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数以万计,数以万计的工作。任务定义为标准Java组件的作业,它们实际上可以执行您可以对其执行的任何编程操作。Quartz Scheduler包含许多企业级功能,例如对JTA事务和集群的支持。 Quartz是免费使用的,并根据Apache 2.0许可获得许可。 简单来说,就是一调度框架,用来干动态定时任务的 quartz官方文档 quartzAPI文档 在springboot中使用quartz 导入依赖 12345<!-- quartz --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-qu...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog