![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 63
壹粒麦子
每天学一点,每天进步一小步,积累经验
展开
-
SpringBoot 瘦身
瘦身: thinBody 又称 “减肥”、“减重”。就是合理、科学的减轻自身重量的。SpringBoot 应用瘦身顾名思议:就是将 SpringBoot 应用打包的 jar 利用合理的方式、方法减小体积。总结:简单来说就是将jar包依赖分开(一部分是自己的写的代码,另部分是第三方使用的依赖库)原创 2022-11-30 18:31:42 · 503 阅读 · 0 评论 -
数据库文档生成器
生成数据库文档原创 2022-08-25 10:10:12 · 119 阅读 · 0 评论 -
mac系统git删除 .DS_Store
Mac 系统永久删除 git 中的 .DS_Store 文件转载 2022-08-04 14:33:08 · 345 阅读 · 0 评论 -
根据id和parent_id递归查询上下级
当只有id 和parent_id 可用时,查询下级和上级是最让头疼的事,所以写了个Demo,可以试试原创 2022-02-25 17:51:43 · 1515 阅读 · 0 评论 -
在static静态变量中使用注入方式
java 在static静态变量中使用注入方式原创 2022-02-24 13:29:27 · 1454 阅读 · 0 评论 -
java字符串截取
/** * import org.apache.commons.lang.StringUtils;包 * @param args */public static void main(String[] args) { String code = "370102"; // public String substring(int beginIndex) 从指定索引处的字符开始(索引从0开始),直到此字符串末尾 // public String substring(int beg原创 2022-01-07 16:30:50 · 1151 阅读 · 1 评论 -
异步编程利器 CompletableFuture
异步编程利器 CompletableFuture,文章摘自微信公众号: 捡田螺的小男孩转载 2021-12-14 09:33:12 · 166 阅读 · 0 评论 -
Markdown转HTML
Markdown转HTML方式一:依赖:生成案例方式二:依赖:生成工具类方式三:依赖:生成工具类方式一:依赖: <dependency> <groupId>org.pegdown</groupId> <artifactId>pegdown</artifactId> <version>1.6.0</version> </dependency>生成案例import java原创 2021-12-07 15:54:47 · 207 阅读 · 0 评论 -
模板导出Excel
使用POI模板导出Excel原创 2021-11-02 21:46:13 · 312 阅读 · 0 评论 -
SpringBoot集成easyexcel
EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 github地址:https://github.com/alibaba/easyexcel原创 2021-10-31 12:34:29 · 2093 阅读 · 0 评论 -
SpringBoot发送邮件
0.学习来源https://gitlab.coding-space.cn/demo/email源码: https://gitee.com/GiteeKey/spring-boot-demo/tree/master/Spring-Boot-Mail1.163邮箱POP3/SMTP服务并记住授权码2.依赖<!-- SpringBoot父依赖--><parent> <groupId>org.springframework.boot</gro原创 2021-09-05 10:51:30 · 108 阅读 · 0 评论 -
JDK8 常用的时间操作
JDK8 常用的时间操作学习参考public static void main(String[] args) { //1. 获取当前时间 LocalDateTime localDateTime = LocalDateTime.now(); System.out.println("LocalDateTime.now 输出:" + localDateTime); String fmtDate = localDateTime.format(DateTimeFormatter.o原创 2021-08-28 21:58:06 · 164 阅读 · 0 评论 -
@Autowired注解
@Autowired注解@Autowired注解@Autowired 字段@Autowired 构造方法@Autowired 方法@Autowired与@Resource区别@Autowired@Resource不同点@Autowired注解@Autowired 字段我们可以把 @Autowired 注解标注在类文件中的字段属性上,通过这种方式,Spring 容器启动的时候会查找相应的 Bean ,然后通过反射的方式注入到这个字段中。例子如下:@Controllerpublic class P原创 2021-08-08 09:28:34 · 970 阅读 · 0 评论 -
数据脱敏插件
敏感数据脱敏插件转载 2021-07-18 19:22:54 · 272 阅读 · 0 评论 -
SpringBoot使用@Value解析配置
SpringBoot使用@Value解析配置原创 2021-07-18 14:22:05 · 516 阅读 · 1 评论 -
Springboot中如何优雅的进行字段校验
Springboot中如何优雅的进行字段校验,使用实体类方式校验或commons-lang3方式转载 2021-07-18 08:01:43 · 543 阅读 · 0 评论 -
Java程序员必会的工具库
实现同样逻辑,代码量减少90%,Java程序员必会的工具库转载 2021-07-04 22:30:52 · 125 阅读 · 0 评论 -
不建议用 equals 判断对象相等
不建议用 equals 判断对象相等一,值是null的情况:二,值是空字符串的情况:三,源码分析四,“a==b”和”a.equals(b)”有什么区别?一,值是null的情况:1.a.equals(b), a 是null, 抛出NullPointException异常。2.a.equals(b), a不是null, b是null, 返回false3.Objects.equals(a, b)比较时, 若a 和 b 都是null, 则返回 true, 如果a 和 b 其中一个是null, 另一个不是n原创 2021-07-04 22:11:23 · 116 阅读 · 0 评论 -
yml文件加密
pom依赖<!-- yml加密 --><dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version></dependency><!-- test测试原创 2021-06-28 21:52:15 · 1059 阅读 · 2 评论 -
使用AOP实现日志和防止重复提交
AOP实现日志和防止重复提交AOP:使用步骤:访问日志1.引入依赖2.自定义注解3.定义一个切面类4.使用防止重复提交1.自定义注解2.定义一个切面类3.使用AOP:底层通过动态代理的方式对指定方式进行增强提供声明式事务;允许用户自定义切面横切关注点:跨越应用程序多个模块的方法或功能。即是,与我们业务逻辑无关的,但是我们需要关注的部分,就是横切关注点。如日志 , 安全 , 缓存 , 事务等等 ....切面(ASPECT):横切关注点 被模块化 的特殊对象。即,它是一个类。通知(Advice)原创 2021-06-26 15:51:47 · 281 阅读 · 0 评论 -
SpringBoot集成Redis
SpringBoot集成Redisredis使用方式一pomapplication.ymlRedisConfig使用案例redis使用方式二pomyml引导类调用StringRedisTemplateStringhashsetredis使用方式一pom<!-- redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp原创 2021-06-05 12:01:04 · 92 阅读 · 0 评论 -
springBoot集成rabbitMq
springBoot集成rabbitMq1.创建虚拟主机2.给用户授权虚拟机3.创建对列4.创建交换机5.交换机和对列绑定6.创建父工程rabbitmq-providerpom依赖application启动类无法启动rabbitmq-consumerpom依赖application启动类7.五种工作模式7.1简单模式 Hello Worldprovider生产者发生消息consumer消费者接受消息7.2工作队列模式 Work queuesprovider生产者发生消息consumer消费者接受消息01co原创 2021-05-23 17:03:06 · 773 阅读 · 5 评论 -
异步调用(多线程)
异步调用FutureCompletableFuture异步开启案例:方法说明runAsyncsupplyAsyncthenRunthenApplythenAcceptthenComposethenCombine(and聚合)thenAcceptBoth(and聚合)runAfterBoth(and聚合)applyToEither(or聚合)exceptionally(异常处理)whenComplete(异常处理)handle(异常处理)所有代码Future一般不使用FutureFuture 也是一个异原创 2021-05-22 15:34:47 · 2488 阅读 · 1 评论 -
线程池
线程池线程池使用public static void main(String[] args) { /** * @param corePoolSize 当前CPU核数 * @param maximumPoolSize 最大线程数量 我的电脑为4核(4+1) 既核数+1 * @param keepAliveTime 存活时间,就是空闲时间 3秒 * @param unit 秒 * @param workQueue 对列,对列长队设置为3个长度原创 2021-05-22 15:24:59 · 57 阅读 · 0 评论 -
根据子节点,找路径(父节点)
根据子节点,找路径(父节点)/** * 根据子节点id,获取节点路径(父类节点ID) * @param categoryId * @return */@Overridepublic Integer[] findCategoryPath(Integer categoryId) { List<Integer> paths = new ArrayList<>(); List<Integer> parentPath = this.findParent原创 2021-04-20 11:11:19 · 710 阅读 · 0 评论 -
springBoot集成Swagger和本地文件上传
创建springBoot工程pom<!-- 父工程--><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.18.RELEASE</version></parent><de原创 2021-04-13 13:18:12 · 1129 阅读 · 0 评论 -
为什么我推荐你使用 Redis 实现用户签到系统
为什么我推荐你使用 Redis 实现用户签到系统原创 [公众号关注:哈喽沃德先生]链接:https://pan.baidu.com/s/1oaEIvNbZs1l6bTlNV3y-mQ 提取码:abcd温馨提示:本案例图文并茂,代码齐全(包括前端)大家只需要跟着文章一步步学习即可实现。想要一步到位直接获取代码的同学,请关注微信公众号「哈喽沃德先生」回复 sign 即可。如今的很多互联网应用,都会有签到的功能,而一个好的签到功能,可以带来以下好处:签到是激励用户活跃的一种手段,可以保持产品活跃度转载 2021-03-16 13:13:35 · 1188 阅读 · 3 评论 -
java判断是否为空(通用)
public class ToolUtil { public static boolean isOneEmpty(Object... os) { Object[] var1 = os; int var2 = os.length; for (int var3 = 0; var3 < var2; ++var3) { Object o = var1[var3]; if (isEmpty(o)) {原创 2021-03-09 17:38:06 · 410 阅读 · 0 评论 -
MySQL中 order by 与 limit 混用,分页有BUG!
坑,MySQL中 order by 与 limit 混用,分页有BUG!在MySQL中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N。但是这种写法却隐藏着较深的使用陷阱。在排序字段有数据重复的情况下,会很容易出现排序结果与预期不一致的问题。比如现在有一张user表,表结构及数据如下:现在想根据创建时间升序查询user表,并且分页查询,每页2条,那很容易写出sql转载 2021-03-02 12:48:32 · 227 阅读 · 0 评论 -
搭建博客第五章
补发大年初五学习笔记更新删除博客前端1.API路由新增Edit页面更新删除博客后端BmsPostControllerBmsPostServicetag标签前端API路由新增Tag.vuetag标签后端BmsTagControllerBmsTagServiceBmsTagMapper.xml搜索前端实现API路由新增Search.vue搜索后端实现BmsSearchControllerBmsPostServiceBmsPostMapper.xml用户中心前端API路由新增user\Profile.vue用户中原创 2021-02-25 12:42:40 · 261 阅读 · 0 评论 -
搭建博客第四章
补发大年初四学习笔记文章发表前端(vditor)1.安装vditor组件2.api3.路由4.新增Create页面5.测试页面文章发表后端DTOBmsPostControllerBmsPostService文章详情前端1.src\api\修改post.js2.路由3.src\views\post\创建Detail.vue文章详情后端voBmsFollowBmsFollowMapperBmsPostControllerBmsPostserviceUmsUserService作者详情前端APIAuthor.vu原创 2021-02-25 12:40:58 · 282 阅读 · 0 评论 -
搭建博客第三章
header顶部菜单(前端)补发大年初三学习笔记header顶部菜单(前端)1.黑白模式2.在src/components创建Layout/Hearder.vue3.在App.vue引入4.查看页面解决刷新不显示用户名0.删除代码1.下载nprogress2./utils/创建get-page-title3.src/创建permission.js4.main.js引入5.查看效果退出登录后端退出登录前端1.修改src\store\modules\user.js2.API接口3.测试问题4.解决底部(前端)原创 2021-02-25 12:38:52 · 139 阅读 · 0 评论 -
搭建博客第二章
补发大年初二笔记每日一句后端1.实体类2.mapper接口层3.BmsTipMapper.xml每日一句前端1.在src下创建/api/tip.js2.修改tip.vue3.测试页面推广信息后端实现1.实体类2.mapper接口3.service4.controller推广信息前端实现1.**在src/api/创建promotion.js**2.修改views\card\Promotion.vue3.测试页面用户注册前端1.在src/api下创建/auth/auth.js2.在src/views创建/aut原创 2021-02-19 13:53:38 · 211 阅读 · 0 评论 -
搭建博客第一章
2021大年初一学习笔记搭建前端工程1.创建vue工程1.创建项目2.选择2.添加框架/依赖2.1下载2.2引入3.实现通知效果3.1修改 App.vue3.2修改router/index.js3.3删除页面3.4修改Home页面3.5启动项目查看效果搭建后端工程0.导入sql1.pom依赖2.yam配置3.启动类4.项目返回和错误处理4.1api数据返回IErrorCodeApiErrorCodeApiResult4.2全局异常ApiExceptionApiAssertsGlobalExceptionHa原创 2021-02-14 23:31:13 · 361 阅读 · 0 评论 -
雪花算法的原理和 Java 实现
SnowFlake实现原理:SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布式系统中的应用十分广泛,且ID 引入了时间戳,基本上保持自增的,后面的代码中有详细的注解。这 64 个 bit 中,其中 1 个 bit 是不用的,然后用其中的 41 bit 作为毫秒数,用 10 bit 作为工作机器 id,12 bit 作为序列号。给大家举个例子吧,比如下面那个 64 bit 的 long转载 2021-02-01 13:05:57 · 79 阅读 · 0 评论 -
java生成图形验证码
pom依赖<!--验证码--><!-- google kaptcha依赖 --><dependency> <groupId>com.github.axet</groupId> <artifactId>kaptcha</artifactId> <version>0.0.9</version></dependency><!-- google kaptch原创 2021-01-31 14:30:08 · 298 阅读 · 0 评论 -
java秒杀
java秒杀创建微服务apimodelserver视图完善目录启动类(server)resorces启动)(server)测试成功测试访问地址创建BaseController(server)重启项目测试导入文件测试参数秒杀准备工作业务介绍使用到的技术数据库表实体类等的创建启动项目测试秒杀商品展示需求:sqlcontrollerservicemappermapper.xml启动并访问地址根据id查询秒杀商品sqlcontrollerservicemappermapper.xml秒杀核心业务生成订单号工具类1.原创 2021-01-23 13:26:48 · 231 阅读 · 0 评论 -
部门树/菜单树(递归)
部门树/菜单树实体类递归方法测试结果学习先找一级在递归找注意实体类import java.util.Date;import java.util.List;/** * @ClassName FoodClassTree * @description: 实体类 * @author: 一粒麦子 * @Date 2021/1/20 16:29 **/public class FoodClassTree { private static final long serialVersionU原创 2021-01-20 12:50:18 · 622 阅读 · 0 评论 -
获取月份/周期开始时间和结束时间
输入年和周期获取周的开始时间和结束时间public static void main(String[] args) throws ParseException { String year = "2021"; Integer week = 2 + 1; //第二周 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal =原创 2021-01-16 21:43:52 · 589 阅读 · 0 评论 -
雪花算法与订单号
订单生成/雪花算法1.传统方式:2.雪花算法:1.传统方式:import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.ThreadLocalRandom;/** * 生成订单号 * 传统方式 采用传统的时间戳 + N位流水号 */public class OrderNo { //当前时间:年月日时分秒毫秒 public static final SimpleDa原创 2021-01-13 13:02:23 · 733 阅读 · 0 评论