This_Wei

Come on!

概述

本文主要介绍了 什么是 Liquibase,以及在 SpringBoot 项目中集成使用 Liquibase 对数据库表进行管理,包括自动创建数据库表、自动初始化数据、更新表结构。

认识 Liquibase

官网:Liquibase | Database Refactoring | Liquibase: http://www.liquibase.org/
Liquibase 是用于数据库重构、管理、记录变化与回滚的开源工具。
在写代码的时候,我们使用 Git 或 subversion 对代码进行版本控制,在数据库中,我们可以使用 liquibase 对数据库表进行版本控制。

阅读全文 »

本文概述

本文简单介绍了 Elasticsearch 是什么,在 windows 环境下的安装 Elasticsearch,在 SpringBoot 项目中使用 Elasticsearch 对数据进行增删改查操作。

什么是 Elasticsearch?

Elasticsearch(简称 ES) 是一个开源的、高扩展性的分布式全文搜索和分析引擎,能够迅速、近乎实时的对大量数据进行存储、分析、检索,可以满足应用复杂的搜索特性和需求。
官网:https://www.elastic.co/products/elasticsearch

Elasticsearch 的核心是 Lucene ,使用 Java 进行封装,隐藏了 Lucene 的复杂性,提供 Java API 和 RESTful API,方便使用。

阅读全文 »

简述

数据库中表数据量太大时,查询速度变慢,而且在进行数据迁移时不方便。我们可以对数据量较大(超2GB)的表进行分区,以提高查询效率,方便数据维护。文章中示例了按时间对数据库表进行分区,并使用数据库存储过程与事件完成数据库表分区的自动创建与删除。

环境

  • 操作系统: Windows 7

  • 数据库:MySQL 5.7

  • 工具:Navicat for MySQL 10.1.7

阅读全文 »

简介

初次接触到 JVM 调优,在本文中记录了相关的概念、方法与工具使用。

遇到的问题

线上运行的项目,在一次版本更新时配置出错,没有开启数据消费线程,导致 Redis 消息队列中积压了超四百万条数据,修改配置后再运行时,程序自动读取消息队列中数据开始解析,结果发现服务器 cpu 占用率长时间达到 100%,消息队列中不断积压数据,后台管理页面无法访问。

思路

  1. 这台服务器是虚拟机,发现服务器居然是单核 cpu 的(–!),多分配 cpu 应该可以提高程序运行效率;
  2. 项目正常运行时,消息队列消费速度快,不会积压,或是有少量积压也能迅速消费掉,这次由于意外导致消息队列积压数据太多,最终导致程序无法消费,要想办法提高程序吞吐量;
  3. 怀疑消息消费代码效率太低,测试发现在消息积压过多时,消费速度严重下降,可能是线程太多,处理不过来;
  4. 检查代码发现,应用开启后不断的从消息队列拿数据,生成任务对象放到了一个 LinkedBlockingQueue 中,这个 queue 没有指定容量,使用的是最大容量 Integer.MAX_VALUE ,怀疑是放入了太多的数据,把内存占满了;
阅读全文 »

内容概述

这篇文章主要讲解了 JPA 相关的概念,以及如何在一个 SpringBoot 项目中使用 spring-data-jpa 来操作数据库,包括创建 Entity,自动建表,基础的增删改查,自定义查询方法,JPQL,原生sql查询,Specification 查询。

什么是 JPA ?

JPA,即 Java Persistence API ,中文意为Java持久层API,是 Sun 公司提出的一套标准,用于将运行期对象持久化存储到数据库,具体实现的产品有: Hiberate、Eclipselink、Toplink、Spring Data JPA等。

阅读全文 »

如何快速对批量文件进行重命名?

现在有一个需求,把文件夹中图片添加上前缀,每张图片的名称不同,而且每张图片的前缀也不一样。

想想该怎么做呢?

传统的办法是不是要一张一张的去改?

数量少的时候还可以,如果有很多需要改,那怎么办呢?

可以用下面的方法试试看!

阅读全文 »

什么是 springboot 的 banner?

当 SpringBoot 项目最初运行起来时,在控制台看到的类似下面的信息,就是 SpringBoot 的 banner。可以把项目中的 banner 换成自己公司的 LOGO,增强员工对公司的认同感。

1
2
3
4
5
6
7
  .   ____          _            __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.14.BUILD-SNAPSHOT)

加载顺序

SpringBoot 默认寻找banner的顺序是:

  • 依次在 classpath 下找文件 banner.gif ,banner.jpg,banner.png,先找到哪个用哪个;
  • 在 classpath 下找 banner.txt ;
  • 以上都没有就使用默认的;
阅读全文 »

问题描述

最近在用 springboot 做 web 项目,其中一个实体中使用了 java8 中的 ZonedDateTime 来记录时间,但是前端页面在使用 POST 或 PUT 提交请求,出错了,错误主要提示信息如下:

1
2
org.springframework.validation.BindException: 
Failed to convert property value of type 'java.lang.String' to required type 'java.time.ZonedDateTime'

读过错误提示后知道是在数据验证绑定时,字段的类型转换错误,前端传的是一个字符串格式的时间,格式为:yyyy-MM-dd HH:mm:ss ,后端方法接收的参数是一个对象,交由spring 自动绑定,绑定时发现参数值不是一个 ZonedDateTime 对象,所以报了类型转换错误。因此,解决思路是写一个方法来完成这个字符串格式时间 和 ZonedDateTime 对象的转换。

阅读全文 »

关于本系列文章

我从2016年8月开始在培训班系统学习 Java,至今已经有近2年时间了,但在使用Java编程过程中发现还有很多基础的东西不明白,很多时候要依靠搜索引擎,恍然发现,过去的学习是为了能尽快会用,能够开展工作,因此很多时候只要求能够使用,而没有去思考内在的思想。思来想去,还是古人说得好,“九层之台,起于垒土”,若想在 Java 这条路上走得远、走得稳,还是要花时间来把基础夯实,不让基础不实影响将来的学习发展。因此,我决定重走Java长征路,重头开始,再来学习一次java,从认识 java 开始,一直学到现在用到的技术框架。

Java是什么?

Java简介

Java 是一种 高级面向对象 的程序设计语言。高级是相对于 机器语言、汇编语言来说的,编程过程接近自然语言,通过编译后生成机器能够识别的语言,从而能够在计算机上运行。面向对象(Object Oriented, OO) 是一种编程设计方式,核心是万事万物皆对象,主要特征有封装、继承、多态、抽象、集合等。
Java 语法规则与 C++ 类似,但比 C简洁,而且去除了其中的指针和多重继承概念。
Java 编写的程序既是编译型的,又是解释型的,程序代码经过编译后转换成可被 Java 虚拟机识别的字节码,Java 虚拟机(JVM)将字节码解释成机器码,最后在计算机上运行。编译只需执行一次,但在 java 虚拟机中运行时,要对每条字节码进行解释执行,因此在执行效率来看是不及 C
的。

阅读全文 »

Apache POI 官网:http://poi.apache.org/

POI 是什么?

POI 是 Apache 软件基金会开源的项目,根据官网的解释,POI提供了操作Office Open XML (OOXML)标准和微软 OLE 2 Compound Document (OLE2)格式文档的接口。OLE2 文件包括微软office 中的 xls、doc、ppt 文件,ooxml格式是新的格式标准,包含 xlsx、docx、pptx 文件。

简单来说,POI 让你能用 java 读/写 Excel、Word、PPT文件。

POI 的组件:

组件名 应用 类型
POIFS OLE2 文件系统
HPSF OLE2 属性集
HSSF Excel xls
HSLF PowerPoint ppt
HWPF Word doc
HDGF Visio vsd
HPBF Publisher pub
HSMF Outlook msg
DDF 埃舍尔通用图纸
HWMF WMF图纸
OpenXML4j OOXML
XSSF Excel xlsx
XSLF PowerPoint pptx
XWPF Word docx
XDGF Visio vsdx
Common SL PowerPoint ppt和pptx
Common SS Excel xls和xlsx

参考地址:http://poi.apache.org/overview.html

阅读全文 »
0%