This_Wei

Come on!

概述

在这篇文章中介绍了 Thymeleaf 模板引擎,以及在 SpringBoot 项目中使用 Thymeleaf 模板引擎渲染页面。

什么是模板引擎

在 MVC 架构中,实行模型(Model)、视图(View)和控制器(Controller)分离,降低代码耦合性,模板引擎就是用来渲染视图展示页面的。
模板引擎将模型(Model) 与预先定义好的页面模板进行解析渲染,往页面中填入数据,最终产生给用户看的视图页面。

数据 + 模板 (模板引擎)> 视图页面

阅读全文 »

概述

这篇文章主要讲解了 markdown 的语法规则、编辑器以及一些使用技巧。

在线测试一下

下面这个是用来尝试 markdown 语法的:

阅读全文 »

概述

本文介绍了在云服务器(Windows Server 2012)上搭建 frp 服务,以及域名 DNS 解析配置,实现内网穿透功能,使用自定义域名访问部署于内网的 web 服务。

背景

开发过微信公众号程序的同学都知道,微信公众号的服务器配置中,需要指定服务器地址,微信平台会往这个地址推送消息。这个地址必须是公网能够访问的,我们在本地开发测试时,就需要一个地址,能够在公网中访问本地运行的程序,内网穿透就是干这个的。以前我使用的是别人的 ngrok ,但有一些问题,比如不能指定 url 前缀,使用自定义的需要交费,再比如别人服务器关了,我就要满世界去找其它的工具了。
frp 是一款开源的用于内网穿透的反向代理工具,支持 tcp、udp 协议,为 http、https 协议提供了额外的能力。

阅读全文 »

概述

本文主要介绍了 什么是 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 ;
  • 以上都没有就使用默认的;
阅读全文 »
0%