* 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 * If you can NOT explain it simply, you do NOT understand it well enough 现陆续将Demo代码和技术文章整理在一起 Github实践精选,本文同样收录在此,方便大家阅读查看,觉得不错,还请Star🌟 日常工作对集合操作真的太频繁了,前端时间就写过一篇关于Java 12 集合的文章 Java12 Collectors.teeing 的使用详解 , 有朋友留言说这个功能比较好用。个人觉得 Java12还有几个特性可以尝试
上一篇文章 跨表更新,看到自己写的SQL像个憨憨 写了关于跨表个更新的内容。一年过的很快,文中后来的两位员工 馮大 和 馮二 也要面对无情的 KPI 考核了,他们工作干的很不错,performance 分别是 4 和 5 新需求来了,静悄悄的来了!!! 领导想要查看每个 performance 下都有谁,同时要求将这些人的名称要逗号拼接成一个字符串,也就是说要得到下面的结果: 要将结果集中某个指定的列进行字符串拼接,这要怎么做呢?主角闪亮✨登场 GROUP_CONCAT(expr) 在 Mysql 官方文档 中,该函数被放在聚合函数章节,如果你要按照指定字段分组拼接,就要配合关键
有点 SQL 基础的朋友肯定听过 「跨表查询」,那啥是跨表更新啊? 背景 项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为 t_dept_members, 系统中有另外一张表 t_user_info 记录了人员信息。要求将 t_dept_members 中有变化的信息更新到 t_user 表中,这个需求就是「跨表更新」啦 憨B SQL 直接被秒杀 不带脑子出门的就写出了下面的 SQL 看到身后 DBA 小段总在修仙,想着让他帮润色一下😜,于是发给了他,然后甩手回来就是这个样子: ​ 看到这个 SQL 语句我都惊呆了,还能
前言 有时,我们需要标记部分代码以供将来参考,比如: 优化,改进,可能的更改,要讨论的问题等。 通常我们会在代码中加入如下的标记表示待办: 1 //TODO 我将要在这里做 xxx 你这样做,别人也会这样做。一时间,项目中可能会存在大量的 TODO,当你搜寻你的 TODO 时也就变得非常麻烦,如同石沉大海,也就失去了这个标记的意义。 IntelliJ IDEA允许我们添加特殊类型的注释,使得这些注释在编辑器中突出显示,它们被索引,并在 TODO 工具窗口 中列出。这样,我们就容易追踪自己的 TODO 了。 默认的 TODO 默认情况下,IntelliJ IDEA识别两种模式:
前言 有时候我们需要在应用启动时执行一些代码片段,这些片段可能是仅仅是为了记录 log,也可能是在启动时检查与安装证书 ,诸如上述业务要求我们可能会经常碰到 Spring Boot 提供了至少 5 种方式用于在应用启动时执行代码。我们应该如何选择?本文将会逐步解释与分析这几种不同方式 CommandLineRunner CommandLineRunner 是一个接口,通过实现它,我们可以在 Spring 应用成功启动之后 执行一些代码片段 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 @Slf4j @Component @Order(2) public cl
前言 在编写项目代码时,我们要求更灵活的配置,更好的模块化整合。在 Spring Boot 项目中,为满足以上要求,我们将大量的参数配置在 application.properties 或 application.yml 文件中,通过 @ConfigurationProperties 注解,我们可以方便的获取这些参数值 使用 @ConfigurationProperties 配置模块 假设我们正在搭建一个发送邮件的模块。在本地测试,我们不想该模块真的发送邮件,所以我们需要一个参数来「开关」 disable 这个功能。另外,我们希望为这些邮件配置一个默认的主题,这样,当我们查看邮件收件箱,通过
通过如下前序两篇文章: 1. Spring Bean 生命周期之缘起 2. Spring Bean 生命周期之缘尽 我们了解了 Spring Bean 的生命周期核心内容,bean 是如何被初始化变为 Ready for Use 的状态,当资源被回收时又是如何被 destroy 的,但 Spring Bean Life Cycle图并未被全部点亮,这篇文章将点亮剩余内容,同时说说你常见的 XxxxAware 接口 为什么要说 Spring Bean 生命周期又说 Aware 呢?下来点亮剩下内容你也许就明白了: 1. 在 Spring Bean Ready for Us
上一篇文章 Spring Bean 生命周期之缘起 说明了我是谁? 和 我从哪里来? 的两大哲学问题,今天我们要讨论一下终极哲学我要到哪里去? 初始化 Spring Bean 有三种方式: 1. @PostConstruct 2. InitializingBean.afterPropertiesSet() 3. init-method 销毁 Spring Bean 同样有三种方式: 1. @PreDestroy 2. DisposableBean.destroy() 3. destroy-method 正所谓,天对地,雨对风; @PostConstruct 对 @Pre
Spring bean 的生命周期很容易理解。实例化 bean 时,可能需要执行一些初始化以使其进入可用 (Ready for Use)状态。类似地,当不再需要 bean 并将其从容器中移除时,可能需要进行一些清理,这就是它的生命周期 上一篇文章 面试还不知道BeanFactory和ApplicationContext的区别? 中说明了接口 Beanfactory 和 Applicationcontext 可以通过 T getBean(String name, Class requiredType) 方法从 Spring 容器中获取bean,区别是,前者是懒加载形式,后者是预加载的形式
前言 接口 BeanFactory 和 ApplicationContext 都是用来从容器中获取 Spring beans 的,但是,他们二者有很大不同 我看到过很多问 BeanFactory 和 ApplicationContext 不同点的问题,考虑到这,我应该使用前者还是后者从 Spring 容器中获取 beans 呢?请向下看 什么是 Spring Bean 这是一个非常简单而又很复杂的问题,通常来说,Spring beans 就是被 Spring 容器所管理的 Java 对象,来看一个简单的例子 1 2 3 4 5 6 7 8 9 10 package com.zolta



Copyright 2018-2019 Tanθ's Blog   |   辽ICP备19017651号-1   |     站点总字数: 162.6k 字   |   载入天数...载入时分秒...   |  站点地图   |  站长统计
  总访问量:  次  总访问人数:  人

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议