This_Wei

Come on!

问题描述

最近在用 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

阅读全文 »

什么是 SpringBoot ?

官网:http://projects.spring.io/spring-boot/

简单来说,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 版本是 3.12.2 ,还是使用 yo 来构建的,在最新版本中已经不需要使用 yo 了,创建实体的过程也有一些差异。

JHipster 核心 —— 创建实体(Create Entity)

当你创建好一个项目后,你下一步要做的可能就是添加实体了,对于每个实体,你都需要下面这些内容:

  • 一张数据库表;
  • 一个 Liquibase 修改集;
  • 一个 JPA 实体;
  • 一个 Spring Data JPA 仓库对象;
  • 一个 spring MVC 的控制器,实现了基础的增、查、删、改方法;
  • 一个 Angular 路由、组件和server;
  • 一个 html 展示页面;
  • 集成测试来验证所有东西是否正确运行;
  • 性能测试来验证所有东西是否允许流畅;

如果你有多个实体,那实体之间可能还有相互关联,因此,还需要:

  • 数据库外键关联;
  • 特殊的 JS 和 html 代码来管理这些关联关系

然而以上内容,只需要我们执行一个指令回答几个问题就可以搞定了,JHipster 一下帮我们写了几百行代码,怎么样,想不想学学这种操作?

阅读全文 »

2019-03-16 如果自己有服务器,可以自己搭建一个内网穿透服务,参考: 使用云服务器搭建 frp 服务实现内网穿透

在学会了web服务器开发之后,愉(tong)快(ku)的写好了一个网站,在本地跑起来了,想给小伙伴演(zhuang)示(bi)一下,但这时小伙伴并不在身边,发出去的链接都访问不了,唉~

但是自从用了 ngrok 之后,腰不酸了,腿不疼了,一口气上六楼也不费劲了~ 啊呸,错了,自从用了 ngrok,远在天涯的小伙伴也能预览我本地的 web 项目了,啊哈哈哈哈哈哈隔~

首先,ngrok先自我介绍一下,大家欢迎!(掌声)

大家好,我是ngrok,我是一个反向代理,我可以帮助你在公共端点和本地运行的web服务器建立安全的连接,这样你的朋友在外网也可以访问你本地运行的web服务了,另外在本地开发微信服务的时候,我可以帮你哦!
这是我家:https://ngrok.com/
我说完了,谢谢!

阅读全文 »

概述

初步接触 AngularJS ,这篇文章记录了学习 AngularJS 的一些心得,文章内容包括 AngularJS 的特点以及简单的使用示例。

第一个 Demo 体验 Angular 的双向数据绑定

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://javascript.qiniu.wqf31415.xyz/angular/angular.min.js"></script>
</head>
<body>
<div ng-app="">
<p>名字 : <input type="text" ng-model="name"></p>
<h1>你好,{{name}}</h1>
</div>
</body>
</html>
阅读全文 »

写在前面的话:这篇文章是 2017 年 4 月刚接触 jhipster 时写的,当时的版本比较低,springboot 还是使用 1.x,angular 还是使用 1.x ,现在的版本已经更新换代好几次了,下面的方法还可以用,但有些依赖包可能需要更新。此外,下面内容对应的官网文档可以访问一下地址,查看 jhipster 历史文档:

https://www.jhipster.tech/documentation-archive/

JHipster 是什么?

摘要:初次接触 JHipster ,认识它是什么,并创建一个 demo 项目来体验一下。

JHipster 是什么?能吃吗?

下定义

根据官方自己的描述:JHipster就是一个用来创建 Spring Boot - Angular 项目的 Yeoman 代码生成器。

简单的说 JHipster就是一个代码生成器 ,帮我们自动生成一个 java web 项目源码,后台使用 Spring Boot ,前端使用 Angular 。

阅读全文 »

摘要:本篇文章讲解在 windows 系统下,本地安装配置 Tomcat 服务器!

从官网下载 Tomcat8.5

官网地址:http://tomcat.apache.org/

下载 Tomcat 8.x :http://tomcat.apache.org/download-80.cgi

对于 windows 系统,我们可以下载二进制文件压缩包,或者安装程序,对于新手来说,建议直接下载安装程序,双击执行,根据提示一步一步操作即可,没什么难度。但是,我们这次偏要选择下载 zip 压缩包,先苦后甜。

阅读全文 »

问题描述

  1. 系统使用hibernate连接数据库;
  2. 启动服务器后,数据库操作正常,但时间超过8小时后,后台访问数据库时总是报错:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received
    from the server was 46,218,269 milliseconds ago. The last packet sent successfully to the
    server was 46,218,270 milliseconds ago. is longer than the server configured value of
    ‘wait_timeout’. You should consider either expiring and/or testing connection validity before
    use in your application, increasing the server configured values for client timeouts, or using
    the Connector/J connection property ‘autoReconnect=true’ to avoid this problem.

原因

  • Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该 connection。而hibernate获取连接的时候认为连接池里的这个连接还是有效的,所以就拿来使用,这时候就报错了。

阅读全文 »
0%