boot

【Spring Boot】@JsonField注解格式化日期数据失效

匿名 (未验证) 提交于 2019-12-02 23:03:14
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013034223/article/details/85243166 【问题背景】 昨天在联调日志列表,前端显示的日期都是时间戳格式,因为后端数据库定义的datetime类型,实体定义的date类型,以json格式返回给前端后,日期都格式化为long类型的时间戳。一看这个问题,就想到上一篇博客总结的@JsonField注解,直接利用format格式化一下,但实际情况是并没有转换。 【问题截图】 使用@JsonField字段,给前端返回的结果,还是时间戳格式。 【解决过程】 注解替换 搜索排查 使用@JsonFormat注解可以,而使用@JsonField注解不行,就开始查两个注解的区别,过程中查到一篇文章写的是 @JsonFormat、@JSONField、@DateTimeFormat的使用以及其区别 ,其实两个注解都是可以实现日期数据格式化的,所以并不是注解使用不对的问题。紧接着换了个问题排查思路,直接查的是@JsonField注解失效原因,在这过程中,查到的更多的文章是@JsonFormat失效,但也是 使用spring boot项目使用@JsonFormat无效问题 这篇文章,让我找到了真正的原因。 真正原因 在springboot项目中

spring boot整合kafka报错Timeout expired while fetching topic metadata

匿名 (未验证) 提交于 2019-12-02 23:03:14
先说一下kafka环境 有一个现有的kafka集群,其中zookeeper为zookeeper-3.4.5,scala为2.11.4,kafka为2.9.2-0.8.1, 现在有一个spring boot的项目,要整合kafka集群, 其中spring boot为2.1.0,spring-kafka为2.2.0 结果报错: org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested exception is org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata 纠结了好久,网上一般就是说什么kafka ip和host name没有对应什么,试验之后还是不行。 于是配置文件添加logging.level.root=debug,查看详细的错误 发现其报错 Error in I/O with host java.io.EOFException kafka-clients-1.0.0.jar,

Spring Boot 中使用 RocketMQ

匿名 (未验证) 提交于 2019-12-02 23:03:14
个人学习SpringBoot系列 RocketMQ篇 Github Link: https://github.com/panjianlong13/SpringBoot-SpringCloud/tree/master/spring-boot-rocketmq RocketMQ介绍 RocketMQ 是什么 RcoketMQ 是一款低延迟、高可靠、可伸缩、易于使用的消息中间件。具有以下特性: 1.支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型 2.在一个队列中可靠的先进先出(FIFO)和严格的顺序传递 3.支持拉(pull)和推(push)两种消息模式 4.单一队列百万消息的堆积能力 5.支持多种消息协议,如 JMS、MQTT 等 6.分布式高可用的部署架构,满足至少一次消息传递语义 7.提供 docker 镜像用于隔离测试和云集群部署 8.提供配置、指标和监控等功能丰富的 Dashboard 专业术语 Producer 消息生产者,生产者的作用就是将消息发送到 MQ,生产者本身既可以产生消息,如读取文本信息等。也可以对外提供接口,由外部应用来调用接口,再由生产者将收到的消息发送到 MQ。 Producer Group 生产者组,简单来说就是多个发送同一类消息的生产者称之为一个生产者组。在这里可以不用关心,只要知道有这么一个概念即可。 Consumer 消息消费者,简单来说

spring boot 返回json There was an unexpected error (type=Not Found, status=404).

匿名 (未验证) 提交于 2019-12-02 23:03:14
在做一个spring boot的小demo的时候,完全是按照其他人的例子来做的,但是运行以后返回界面始终是404: Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Tue Apr 17 13:12:15 CST 2018 There was an unexpected error (type=Not Found, status=404). No message available 页面上也不明说错了什么,查了很多地方都说是Application类的位置应该放在最外面的包中,一小部分提示缺少依赖,但都没有解决这个问题。 最好发现是controller类的的一个注解写错了。 原来: @Controller @RequestMapping("/user") public class LoginController { 现在: @RestController @RequestMapping("/user") public class LoginController { 就是把@Controller改为@RestController就可以了 版权声明:本文为博主原创文章,转载请附上博文链接! 文章来源: spring

spring boot 项目打包,配置构建插件

匿名 (未验证) 提交于 2019-12-02 22:59:29
转载于: https://blog.csdn.net/u010429286/article/details/79085212#commentBox Spring Boot:jar中没有主清单属性 使用Spring Boot微服务搭建框架,在eclipse和Idea下能正常运行,但是在打成jar包部署或者直接使用java -jar命令的时候,提示了xxxxxx.jar中没有主清单属性: D:\hu-git\spring-xxx-xxx\target>java -jar spring-cloud-eureka-0.0.1-SNAPS HOT.jar spring-xxx-xxx-0.0.1-SNAPSHOT.jar中没有主清单属性 通过maven打jar包:mvn install, 或者在IDE中右击选择Run as -> maven install。 在这里有一个问题就是主清单属性是什么? 以SpringBoot为例,jar包中包含了三个文件夹:BOOT-INF,META-INF,org,可以把jar包解压到文件夹下查看,其中META-INF文件夹下有一个MANIFEST.MF文件,该文件指明了程序的入口以及版本信息等内容,如下 Manifest-Version: 1.0 Implementation-Title: spring-xxx-xxx Implementation

Spring Boot 入门

匿名 (未验证) 提交于 2019-12-02 22:56:40
1.1 spring Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品。无需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级 Java 开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的 Java 对象(Plain Old Java Object,POJO)实现了 EJB 的功能。 spring的不足 : 1. 虽然 Spring 的组件代码是轻量级的,但它的配置却是重量级的, 大量的xml配置文件 2. 开发人员需要自行进行项目的依赖管理, 选择合理版本, 避免冲突, 避免不兼容等问题 以上问题都损耗了大量的写代码的时间 . 1.2 Spring Boot Spring Boot 让这一切成为了过去。 Spring Boot 是 Spring 社区较新的一个项目。该项目的目的是帮助开发者更容易的创建 基于 Spring 的应用程序和服务,让更多人的人更快的对 Spring进行入门体验,为 Spring 生态系统提供了一种固定的、约定优于配置风格的框架。 Spring Boot 具有如下特性: (1)为基于 Spring 的开发提供更快的入门体验 (2)开箱即用,没有代码生成,也无需 XML配置。同时也可以修改默认值来满足特定的需求。 (3

Spring Boot整合Thymeleaf模板引擎

匿名 (未验证) 提交于 2019-12-02 22:56:40
Thymeleaf是一款用于渲染XML、XHTML、HTML5内容的模板引擎。类似Velocity,FreeMaker模板引擎,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。 Thymeleaf也是Spring Boot首要支持的模板引擎,并且在最新的Spring Boot版本中已经不再支持Velocity了。 官网: http://www.thymeleaf.org/ 需要引入Spring Boot的Thymeleaf启动器依赖。 < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-thymeleaf </ artifactId > </ dependency > 引入该依赖后会自动引入web依赖,不需要再单独引入web依赖。 下面是Thymeleaf的自动配置相关类。 Thymeleaf的自动配置类: org .springframework .boot .autoconfigure .thymeleaf .ThymeleafAutoConfiguration Thymeleaf的自动配置参数类: org .springframework .boot .autoconfigure

spring boot Controller中使用注解@RequestBody遇到的一个问题

匿名 (未验证) 提交于 2019-12-02 22:56:40
spring boot Controller中使用注解@RequestBody遇到的一个问题总结: 通过@RequestBody接收实体对象,如代码所示 @PostMapping(value = "addtype") public Object addAppType(@RequestBody AppType appType) throws Exception{ return JsonData.buildSuccess(); } 首先选择post请求 然后Header中添加"Content-Type:application/json" 如图: Body中选择"raw",并选择"JSON(application/json)" 如图: 这样配置以后就可以发送post请求测试spring boot的post接口。 踩的坑: postman中body选择了"x-www-form-urlencoded",发送请求。报错如下(这个貌似是外部tomcat报的错): <! doctype html > < html lang ="en" >< head >< title > HTTP Status 404 ? Not Found </ title >< style type ="text/css" > h1 { font-family : Tahoma,Arial,sans-serif ;

spring boot: GlobalDefaultExceptionHandler方法内的友好错误提示,全局异常捕获

匿名 (未验证) 提交于 2019-12-02 22:56:40
spring boot: GlobalDefaultExceptionHandler方法内的友好错误提示,全局异常捕获 当你的某个控制器内的某个方法报错,基本上回显示出java错误代码,非常不友好,这个时候可以通过新建GlobalDefaultExceptionHandler.java文件, package com.muyang.boot22.config; import javax.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; @ControllerAdvice public class GlobalDefaultExceptionHandler { @ExceptionHandler(Exception.class) @ResponseBody public String defaultExceptionHandler(HttpServletRequest req,Exception