【DB系列】数据库初始化-DataSourceInitializer方式

前面介绍的两篇基于配置方式的数据库初始化方式,使用起来非常简单,但是有一个非常明显的问题,如何实现表结构存在时不再初始化,不存在时才执行? 如果数据库也不存在,也需要初始化时创建,可行么?

接下来介绍一下如何使用DataSourceInitializer来实现自主可控的数据初始化

查看更多

分享到

【DB系列】数据库初始化-jpa配置方式

上一篇博文介绍如何使用spring.datasource来实现项目启动之后的数据库初始化,本文作为数据库初始化的第二篇,将主要介绍一下,如何使用spring.jpa的配置方式来实现相同的效果

查看更多

分享到

【DB系列】数据库初始化-datasource配置方式

在我们的日常业务开发过程中,如果有db的相关操作,通常我们是直接建立好对应的库表结构,并初始化对应的数据,即更常见的情况下是我们在已有表结构基础之下,进行开发;
但是当我们是以项目形式工作时,更常见的做法是所有的库表结构变更、数据的初始、更新等都需要持有对应的sql变更,并保存在项目工程中,这也是使用liqubase的一个重要场景;
将上面的问题进行简单的翻译一下,就是如何实现在项目启动之后执行相应的sql,实现数据库表的初始化?

本文将作为初始化方式的第一篇:基于SpringBoot的配置方式实现的数据初始化

查看更多

分享到

【扩展点】 自定义bean注册扩展机制BeanDefinitionRegistryPostProcessor

接着上一篇容器刷新前的扩展点,我们继续往下走;接下来来到的就是bean的定义扩展处,它是在Spring容器刷新之后,应用的bean定义加载完成、实例化之前提供的切入点,主要是通过实现BeanDefinitionRegistryPostProcessor接口的两个方法,来实现自定义的bean定义,或者对已注册的bean进行修改or代理替换

本文将带来的知识点如下:

  • BeanDefinitionRegistryPostProcessor: 基本使用姿势
  • postProcessBeanDefinitionRegistry 方法 优先于 postProcessBeanFactory 方法执行
  • 实现自定义的bean注册,实现对容器的bean定义进行修改

查看更多

分享到

【扩展点】 容器刷新前回调ApplicationContextInitializer

本文将作为Spring系列教程中源码版块的第一篇,整个源码系列将分为两部分进行介绍;单纯的源码解析,大概率是个吃力没人看的事情,因此我们将结合源码解析,一个是学习下别人的优秀设计,一个是站在源码的角度看一下我们除了日常的CURD之外,还可以干些啥

查看更多

分享到

【实战系列】数据报表统计并定时推送用户的手把手教程

本文节选自 《实战演练专题》

通过一个小的业务点出发,搭建一个可以实例使用的项目工程,将各种知识点串联起来; 实战演练专题中,每一个项目都是可以独立运行的,包含若干知识点,甚至可以不做修改直接应用于生产项目;

今天的实战项目主要解决的业务需求为:每日新增用户统计,生成报表,并邮件发送给相关人

本项目将包含以下知识点:

  • 基于MySql的每日新增用户报表统计(如何统计每日新增用户,若日期不连续如何自动补0?)
  • 定时执行报表统计任务
  • MyBatis + MySql数据操作
  • 邮件发送
  • Thymeleaf引擎实现报表模板渲染

查看更多

分享到

【WEB系列】 定义接口返回类型的几种方式

实现一个web接口返回json数据,基本上是每一个javaer非常熟悉的事情了;那么问题来了,如果我有一个接口,除了希望返回json格式的数据之外,若也希望可以返回xml格式数据可行么?

答案当然是可行的,接下来我们将介绍一下,一个接口的返回数据类型,可以怎么处理

查看更多

分享到

【WEB系列】 XML传参返回实战

220704-SpringBoot系列教程之XML传参返回实战

最近在准备使用微信公众号来做个人站点的登录,发现微信的回调协议居然是xml格式的,之前使用json传输的较多,结果发现换成xml之后,好像并没有想象中的那么顺利,比如回传的数据始终拿不到,返回的数据对方不认等

接下来我们来实际看一下,一个传参和返回都是xml的SpringBoot应用,究竟是怎样的

查看更多

分享到

【基础系列】基于maven多环境配置

SpringBoot系列之基于maven多环境配置

实际开发过程中,配置的多环境区分属于标配了,当我们不考虑配置中心时,将多环境的配置就放在项目的resource目录下,那么可以怎样做多环境的配置管理呢?

之前介绍过一篇基于 spring.profiles.active 配置来选择对应的配置文件的方式,有了解这个配置的小伙伴可以很快找到这种方式的特点

如配置值为dev,则加载 application-dev.yml 配置文件,如果为prod,则加载application-prod.yml

那么缺点就很明显了,当我每个环境的配置很多时,上面这种方式真的好用么?

接下来本文介绍另外一种常见的基于maven的多环境配置方式

查看更多

分享到

【WEB系列】内嵌Tomcat配置Accesslog日志文件生成位置源码探索

现在SpringBoot应用大多是内嵌tomcat,以jar包方式启动对外提供服务,最近遇到一个有意思的问题,当我希望输出tomcat的 access.log 时,添加上对应的配置之后,发现windowns系统下找不到这个日志文件,而linux/mac则没有什么问题;

所以花了些时间定位一下,本文将记录定位这个日志文件生成的全过程,当发现最后的结论时,更让我吃惊的事情来了,就这么个问题,在三年前我也遇到过,只不过当时的问题是上传文件之后,提示临时目录不存在,而这个临时目录和本文定位的目录居然是一回事,可谓是来了一次梦幻的联动,前面踩的坑不探究到底,后面迟早会继续掉坑😂

查看更多

分享到

【搜索系列】ES查询常用实例演示

本文将作为es系列第三篇,结合常见的实例,来演示下如何通过RestHighLevelClient来实现es的各种查询支持

查看更多

分享到

【搜索系列】ES文档基本操作CURD实例演示

本文将作为es系列第二篇,在前文项目搭建的基础上,先来看一下es的基本操作姿势,如何实现CURD

查看更多

分享到