利用Excel和bat对文件批量重命名
SpringBoot 花式 banner
什么是 springboot 的 banner?
当 SpringBoot 项目最初运行起来时,在控制台看到的类似下面的信息,就是 SpringBoot 的 banner。可以把项目中的 banner 换成自己公司的 LOGO,增强员工对公司的认同感。
1 | . ____ _ __ _ _ |
加载顺序
SpringBoot 默认寻找banner的顺序是:
- 依次在 classpath 下找文件 banner.gif ,banner.jpg,banner.png,先找到哪个用哪个;
- 在 classpath 下找 banner.txt ;
- 以上都没有就使用默认的;
SpringBoot web 项目前端传值时 String 转 ZonedDateTime 报错的解决方法
问题描述
最近在用 springboot 做 web 项目,其中一个实体中使用了 java8 中的 ZonedDateTime 来记录时间,但是前端页面在使用 POST 或 PUT 提交请求,出错了,错误主要提示信息如下:
1 | org.springframework.validation.BindException: |
读过错误提示后知道是在数据验证绑定时,字段的类型转换错误,前端传的是一个字符串格式的时间,格式为:yyyy-MM-dd HH:mm:ss ,后端方法接收的参数是一个对象,交由spring 自动绑定,绑定时发现参数值不是一个 ZonedDateTime 对象,所以报了类型转换错误。因此,解决思路是写一个方法来完成这个字符串格式时间 和 ZonedDateTime 对象的转换。
重走Java长征路-Java是什么
关于本系列文章
我从2016年8月开始在培训班系统学习 Java,至今已经有近2年时间了,但在使用Java编程过程中发现还有很多基础的东西不明白,很多时候要依靠搜索引擎,恍然发现,过去的学习是为了能尽快会用,能够开展工作,因此很多时候只要求能够使用,而没有去思考内在的思想。思来想去,还是古人说得好,“九层之台,起于垒土”,若想在 Java 这条路上走得远、走得稳,还是要花时间来把基础夯实,不让基础不实影响将来的学习发展。因此,我决定重走Java长征路,重头开始,再来学习一次java,从认识 java 开始,一直学到现在用到的技术框架。

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

简单来说,SpringBoot 的出现是为了简化Spring项目的创建、运行、调试、部署过程,boot的意思是启动、引导,整体来说就是快速启动 Spring。springboot 并不是一个新的框架,它只是spring的一个封装,从根本上讲就是一些库的集合,帮助开发者快速构建spring 项目,项目里面还是使用 spring 框架实现,所以 Spring 能做的,SpringBoot 也能做,而且做的更方便、快捷。
在使用 Spring 开发的时候,写项目时有伴有大量的 xml 配置文件要编写,随着快速开发的流行,这种方式已经不能满足需要了,springboot 的出现帮我们简化了项目配置,同时提供了很多注解,让我们编码也变得简单了。SpringBoot 简化了配置,不用再写 xml 了 ,传统 Spring 项目的 xml 配置文件被转化成 java config,直接利用 @Autowire 注解注入 Bean,而环境变量中的 properties、xml 文件集中到一个application.yml中。同时,SpringBoot 使项目部署变得简单,传统的Spring项目需要外部的 tomcat 容器来运行,而在springboot 中已经集成了 tomcat ,我们将项目打包成一个 jar 包,直接通过 java -jar xxx.jar 就可以运行项目,这也方便后续使用 docker 。
SpringBoot 能够使我们更加专注于业务逻辑的开发,只需记住 Just run 就可以了,那怎么创建一个 SpringBoot 项目呢?话不多说,还是先上个 demo 尝尝味道吧!全文里介绍了一个 SpringBoot 项目从创建到测试运行,再到打包部署的全过程。
JHipster 学习笔记2
写在前面的话:这篇文章中使用的 jhipster 版本是 3.12.2 ,还是使用 yo 来构建的,在最新版本中已经不需要使用 yo 了,创建实体的过程也有一些差异。
JHipster 核心 —— 创建实体(Create Entity)
当你创建好一个项目后,你下一步要做的可能就是添加实体了,对于每个实体,你都需要下面这些内容:
- 一张数据库表;
- 一个 Liquibase 修改集;
- 一个 JPA 实体;
- 一个 Spring Data JPA 仓库对象;
- 一个 spring MVC 的控制器,实现了基础的增、查、删、改方法;
- 一个 Angular 路由、组件和server;
- 一个 html 展示页面;
- 集成测试来验证所有东西是否正确运行;
- 性能测试来验证所有东西是否允许流畅;
如果你有多个实体,那实体之间可能还有相互关联,因此,还需要:
- 数据库外键关联;
- 特殊的 JS 和 html 代码来管理这些关联关系
然而以上内容,只需要我们执行一个指令回答几个问题就可以搞定了,JHipster 一下帮我们写了几百行代码,怎么样,想不想学学这种操作?
使用ngrok把本地web服务映射到互联网
2019-03-16 如果自己有服务器,可以自己搭建一个内网穿透服务,参考: 使用云服务器搭建 frp 服务实现内网穿透
在学会了web服务器开发之后,愉(tong)快(ku)的写好了一个网站,在本地跑起来了,想给小伙伴演(zhuang)示(bi)一下,但这时小伙伴并不在身边,发出去的链接都访问不了,唉~
但是自从用了 ngrok 之后,腰不酸了,腿不疼了,一口气上六楼也不费劲了~ 啊呸,错了,自从用了 ngrok,远在天涯的小伙伴也能预览我本地的 web 项目了,啊哈哈哈哈哈哈隔~
首先,ngrok先自我介绍一下,大家欢迎!(掌声)
大家好,我是ngrok,我是一个反向代理,我可以帮助你在公共端点和本地运行的web服务器建立安全的连接,这样你的朋友在外网也可以访问你本地运行的web服务了,另外在本地开发微信服务的时候,我可以帮你哦!
这是我家:https://ngrok.com/ 。
我说完了,谢谢!
AngularJS 学习笔记1
概述
初步接触 AngularJS ,这篇文章记录了学习 AngularJS 的一些心得,文章内容包括 AngularJS 的特点以及简单的使用示例。
第一个 Demo 体验 Angular 的双向数据绑定
1 | <!DOCTYPE html> |

