
springboot
文章平均质量分 73
russle
Java开发工程师
**注意事项**:本博客所有代码是为了介绍相关内容而编写或者引用的,示例代码并非可直接用于生产的代码。仅供参看而已。
展开
-
springboot全局设置LocalDateTime的格式解析
程序中使用LocalDateTime类型, 在api返回response时,LocalDateTime类型的数据返回的格式是数组形式,非常不便于展示和解析。原有的通过修改application.yaml方式也行不通,因为使用的是LocalDateTime, 不是DateTime类型。原创 2022-11-12 15:45:40 · 2360 阅读 · 0 评论 -
Redis Lettuce Sub Pub功能使用简要介绍
近期,项目升级依赖包到SpringBoot 2.0.1, 原有的spring-data-redis也默认自动升级为2.0.6, 其中重要一点是原有jedis驱动修改为lettuce驱动了。 关于jedis和lettuce比较,本文就不再赘述,综合来看肯定倾向于选择使用lettuce驱动,不管您是否使用spring-data-redis。简要介绍第一种,使用spring-data-redis自带...原创 2019-02-23 17:00:11 · 6295 阅读 · 0 评论 -
使用Consul或者Eureka作为注册中心时,微服务如何获取自身服务基本信息
本文简要介绍在SpringCloud框架下,使用Eureka或者Consule时,如何获取服务自身基本信息(也可以使用对象类获取其他服务或者所有服务的信息)。问题来源我们在开发微服务中有时候需要将微服务自身一下信息记录下来供debug或者功能使用。例如一个user-service服务有多个实例在运行,但个个别实例又问题,我就需要在日志记录user-service的具体实例作为排查依据。或者我们...原创 2018-12-08 11:46:09 · 6085 阅读 · 0 评论 -
Spring Data Elasticsearch入门 (一)
Spring Data Elasticsearch入门本文通过一个简单的访问普通log并添加Movie类型日志介绍如何使用spring-data-elasticsearch访问elasticsearch数据库。关于ELK的理论以及使用场景不在本文的讨论访问,如何安装ELK全家桶也不再本文讨论范文。本文主要介绍一个简单的使用场景,就是如何通过spring-data-elasticsearch访问...原创 2018-12-02 12:13:26 · 1997 阅读 · 0 评论 -
Quartz实现分布式集群schedule调度(定时任务执行)
项目需求:需要执行一些定时任务,比如每间隔几小时同步其他系统中信息,或者定期监控一些服务是否正常。如果定时任务程序有多个实例在运行,就是运行多次,因此需要集群分布式的schedule。保证定时任务有且只有一个执行。调研各种schedule框架后,选择quartz,原因如下:1, 项目已经在使用quartz,大家比较熟悉,2,quartz提供的clustering功能完备,满足项目的需求。说明...原创 2018-11-18 22:27:33 · 8583 阅读 · 0 评论 -
如何解决Autowired annotation is not supported on static fields问题给静态变量赋值
问题由来:springboot项目中使用加解密功能,密钥在application.properties文件中配置,因此加解密服务类需要读取该变量,为了提高效率,加解密服务类静态初始化的时候就生成了SecretKeySpec(不是每次调用加密或者解密方法时再生成SecretKeySpec)。 如果我们使用如下方式读取配置文件,然后赋值给mySecretKey, springboot就会报@Auto...原创 2018-11-11 15:14:30 · 12613 阅读 · 0 评论 -
springboot程序logback日志基本配置,多个包不同日志级别输入到文件中
日志是程序中必不可少的内容。依据日志我们可以有效诊断程序bug,统计用户访问和各主要功能的使用频率时间段等信息。因此我们会需要不同package使用不同的日志级别,以及不同业务的日志输出到不同的文件。下面本文简要概述如何使用logback将不同包的不同级别日志输出到info1.txt中。本文的代码在这里,欢迎加星,fork。1, springboot配置日志logback日志的方式官方文档在...原创 2018-11-10 20:08:54 · 16022 阅读 · 0 评论 -
Spring Boot日志配置中的file和path注意事项
注意:同时配置了logging.file和logging.path只有一个生效。例如 application.properties文件中的日志配置如下logging.file=mylog.txtlogging.path=/var/myapp/实际只有logging.file=mylog.txt生效,程序并保护会在/var/myapp目录下生成mylog.txt。参看官方文档:Tabl...原创 2018-10-28 23:53:58 · 3454 阅读 · 0 评论 -
Spring Boot Web应用开发 CORS 跨域请求设置 Invalid CORS request
使用SpringBoot Web开发程序时,前后端分离时,经常遇到跨域问题,特别是很多情况下Firefox浏览器没有问题,而chrome浏览器有问题,仅仅从浏览器的web控制台很难发现有效的错误或者告警信息,因此在开发程序很有必要在开发阶段就考虑到并配置好跨域。SpringBoot提供的跨域配置有两种,一种是全局的,一种是具体到方法的。如果同时配置了那么具体方法的优先。具体代码在这里欢迎for...原创 2018-10-14 11:47:22 · 67047 阅读 · 0 评论 -
Spring Boot程序获取tomcat启动端口
有时我们需要Spring Boot程序的启动端口,例如我们在代码中需要拼接改程序的监控检查URL,就会需要用到端口, 那么如何获取tomcat的端口? 办法有很多,实现ApplicationListener接口,通过WebServerInitializedEvent(Spring Boot 2.0.x版本) 或者EmbeddedServletContainerInitializedEvent(S...原创 2018-09-09 22:35:02 · 14581 阅读 · 2 评论 -
启用springboot security后登录web页面需要用户名和密码之默认的用户名和密码
问题 默认的用户名是user 密码是 可以在application.properteis中配置对应的用户和密码如果不想启用密码保护可以配置为 security.user.password=none security.basic.enabled=false...原创 2018-09-06 10:07:01 · 88427 阅读 · 18 评论 -
mvn -P 结合Spring Boot profile使用
Maven中的参数P代表(Profiles配置文件, 也就是我们在Spring Boot中使用的profile) 在指定的中,可以通过-P进行传递或者赋值。除了激活profile我们也可以通过-P !xxx来禁用某个profile 我们先看看Maven是如何解释-P的作用的: -P,–activate-profiles Comma-delimited list of p...原创 2018-08-05 12:26:23 · 6122 阅读 · 0 评论 -
Spring Boot web程序如何定制错误页面 (二)--实现ErrorController
上一篇我们介绍如何通过定制error页面实现自定义错误页面。本篇我们介绍一种更灵活的错误定制方法———–实现ErrorController。 Spring Boot提供了BasicErrorController类, AbstractErrorController抽象类, ErrorController接口, 其中BasicErrorController继承了AbstractErrorContro...原创 2018-07-22 13:01:48 · 3934 阅读 · 0 评论 -
Spring Boot web程序如何定制错误页面
我们使用Spring Boot开发web程序,登录不存在的path时会有错误提示页面。如何设置该错误页面以便更好地提示用户了?下面针对这个问题做个简要总结。 默认的错误页面 设置错误页面几种方式 设置错误页面-Thymeleaf1, 默认的错误页面当我们的程序没有专门设置错误页面时,我们可以看到启动日志中有类似信息(注,因为我使用了swagger所以有/swa...原创 2018-07-21 22:32:48 · 4251 阅读 · 2 评论 -
Spring Cloud Gateway替代zuul作为API网关(一)
本文非常简要介绍如何使用Spring Cloud Gateway最API 网关(不是使用zuul作为网关),关于Spring Cloud Gateway和zuul的性能比较本文不再赘述,基本可以肯定Spring Cloud Finchley版本的gateway比zuul 1.x系列的性能和功能整体要好。特别提醒:Spring Cloud Finchley版本中,即使你使用引入了spring-c......原创 2018-07-08 20:06:44 · 114824 阅读 · 18 评论 -
生产环境中禁用swagger
Swagger是我们常用的API Doc工具,非常便于开发人员调试,后台和前端开发人员协作,以及对外公布API使用。如何在生产环境中禁止swagger了?如何禁止Swagger,方法有很多,我们选择最简单实用的,也就是直接在使用@Profile注解。 项目背景介绍, 我们有三个环境dev, test, prod,我们只在dev环境中使用swagger,test和prod都禁止使用,为了体现使...原创 2018-06-09 12:47:41 · 14237 阅读 · 1 评论 -
使用Autowired和Qualifier解决多个相同类型的bean如何共存的问题
@Autowired是根据类型进行自动装配的。如果当spring上下文中存在不止一个A类型的bean时,就会抛出BeanCreationException异常;如果Spring上下文中不存在A类型的bean,而且我们又使用A类型,也会抛出BeanCreationException异常。针对存在多个A类型的Bean,我们可以联合使用@Qualifier和@Autowired来解决这些问题。 英...原创 2018-05-11 23:36:08 · 20778 阅读 · 2 评论