Spring Boot

SpringBoot @RequestBody 报错 ('application/x-www-form-urlencoded;charset=UTF-8' not supported)

こ雲淡風輕ζ 提交于 2021-02-18 01:54:52
第一种:转 https://blog.csdn.net/chenfei2341/article/details/83652586 在Spring boot 中使用 @RequestBody 会报错,提示错误 Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported ,代码如下: @RequestMapping(value = "/act/service/model/{modelId}/save", method = RequestMethod.POST) public void saveModel(@PathVariable String modelId, @RequestBody MultiValueMap<String, String> values) { // 具体代码 } 这个在传统 spring MVC 中是有效的,但是在 Spring boot 中会报错。 传统是 Spring MVC 有效,是因为有 <mvc:annotation-driven> 注解,查资料,<mvc:annotation-driven> 注解配置了如下的内容 spring 3.1 版本: <!-- 注解请求映射 --> <bean class ="org.springframework.web

【spring-boot】thymleaf如何获取session中的值

余生颓废 提交于 2021-02-17 22:22:15
< form method ="get" th:action ="@{/logout_html}" id ="userinfo" > < button type ="submit" class ="btn btn-link" > 退出 </ button > < b style ="display:inline;" th:text ="'用户名:' + ${session.loginUser}" ></ b > </ form > 关键代码: session.loginUser 来源: oschina 链接: https://my.oschina.net/u/4357815/blog/3432199

国产微服务网关-Soul(真香)

旧街凉风 提交于 2021-02-17 13:13:14
What is the Soul? 一个异步的,高性能的,跨语言的,响应式的API网关。我希望能够有一样东西像灵魂一样,保护您的微服务。参考了Kong,Spring-Cloud-Gateway等优秀的网关后,站在巨人的肩膀上,Soul由此诞生! 是不是很吊的一句话,站在巨人身上那么这些巨人也就变成了矮子。 整体架构如下图所示: 是不是很炫反正我是没看懂 部署单机版 操作在windows环境 安装SoulAdmin souladmin:控制台,负责维护网关的 元数据 、配置等等,并提供给 SoulBootstrap 网关服务 读取。 在mysql数据库中执行下面图中sql,12张表 在浏览器输入 https://yu199195.github.io/jar/soul-admin.jar 回车下载即可,yml文件复制一份在外部启动,用自己的数据库 启动命令:java -jar soul-admin.jar --spring.config.location=xxxxx\application-local.yml 启动成功后 通过日志看到 Soul Admin 启动在 9095 端口。使用浏览器,访问 http://127.0.0.1:9095/ 地址,进入登录页,账号密码分别是:admin 和123456 安装SoulBootstrap SoulBootstrap:网关服务,负责启动网关

MinIO 的分布式部署

旧街凉风 提交于 2021-02-17 09:04:15
高可用分布式对象存储,MinIO 轻松实现。 1 前言 上一篇文章 介绍了使用对象存储工具 MinIO 搭建一个优雅、简单、功能完备的静态资源服务,可见其操作简单,功能完备。但由于是单节点部署,难免会出现单点故障,无法做到服务的高可用。MinIO 已经提供了分布式部署的解决方案,实现高可靠、高可用的资源存储,同样的操作简单,功能完备。本文将对 MinIO 的分布式部署进行描述,主要分以下几个方面: 分布式存储的可靠性 MinIO 的分布式的存储机制 分布式部署实践 2 分布式存储可靠性常用方法 分布式存储,很关键的点在于数据的可靠性,即保证数据的完整,不丢失,不损坏。只有在可靠性实现的前提下,才有了追求一致性、高可用、高性能的基础。而对于在存储领域,一般对于保证数据可靠性的方法主要有两类,一类是冗余法,一类是校验法。 2.1 冗余 冗余法最简单直接,即对存储的数据进行副本备份,当数据出现丢失,损坏,即可使用备份内容进行恢复,而副本 备份的多少,决定了数据可靠性的高低。这其中会有成本的考量,副本数据越多,数据越可靠,但需要的设备就越多,成本就越高。可靠性是允许丢失其中一份数据。当前已有很多分布式系统是采用此种方式实现,如 Hadoop 的文件系统(3个副本),Redis 的集群,MySQL 的主备模式等。 2.2 校验 校验法即通过校验码的数学计算的方式,对出现丢失

springboot自定义异常

徘徊边缘 提交于 2021-02-17 08:55:21
SpringBoot自定义异常以及异常处理 在web项目中,我们可能需要给前端返回不同的提示码。例如:401表示没有权限,500代表位置异常,200代表请求成功等。但是这些提示码远远不能满足我们返回给前端的提示,可能还需要我们自定义错误码给前端,前端获取相应的错误码以及错误信息,展示到页面中。 使用自定义异常可以解决这些返回值,利用自定义异常以及对异常的处理,可以在返回的时候自定义我们的返回码以及错误信息等。 一、自定义异常类 /** * @author : lxw * @Date: 2019/2/16 20:00 * @email: * @Description: 自定义异常(继承运行时异常) */ public class ExceptionUtils extends RuntimeException { private static final long serialVersionUID = 1L ; /** * 错误编码 */ private int code; /** * 消息是否为属性文件中的Key */ private boolean propertiesKey = true ; /** * 构造一个基本异常. * * @param message 信息描述 */ public ExceptionUtils(String message) { super

XXL-SSO分布式单点登录框架

梦想的初衷 提交于 2021-02-17 06:40:56
一、简介 1.1 概述 XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有"轻量级、分布式、跨域、Cookie+Token均支持、Web+APP均支持"等特性。现已开放源代码,开箱即用。 1.2 特性 简洁:API直观简洁,可快速上手; 轻量级:环境依赖小,部署与接入成本较低; 单点登录:只需要登录一次就可以访问所有相互信任的应用系统。 分布式:接入SSO认证中心的应用,支持分布式部署; HA:Server端与Client端,均支持集群部署,提高系统可用性; 跨域:支持跨域应用接入SSO认证中心; Cookie+Token均支持:支持基于Cookie和基于Token两种接入方式,并均提供Sample项目; Web+APP均支持:支持Web和APP接入; 实时性:系统登陆、注销状态,全部Server与Client端实时共享; CS结构:基于CS结构,包括Server"认证中心"与Client"受保护应用"; 记住密码:未记住密码时,关闭浏览器则登录态失效;记住密码时,支持登录态自动延期,在自定义延期时间的基础上,原则上可以无限延期; 路径排除:支持自定义多个排除路径,支持Ant表达式。用于排除SSO客户端不需要过滤的路径; 1.3 下载 源码仓库地址 源码仓库地址 Release Download https://github.com

spring boot学习01【搭建环境、创建第一个spring boot项目】

折月煮酒 提交于 2021-02-17 04:21:13
1、给eclipse安装spring boot插件 Eclipse中安装Spring工具套件(STS): Help -> Eclipse Marketplace... 在Search标签或者Popular标签中,选择Spring Tool Suite插件,安装: 点击install进行插件的安装,该过程会自动下载安装包进行安装,待所有的包下载完成之后点击下一步(confirm) 选择同意之后条约之后,点击finish,在安装的过程中如果弹出警告提示时一直点击install anyway即可,待所有包安装完成之后点击restart Now 重新启动eclipse,插件安装步骤完成。 2、创建一个spring boot项目 在创建spring boot项目的向导下完善一下内容: 在选择java版本的时候应该确认本机的安装的java版本 运行 --cmd --- java -version查看安装的java jdk的版本 完成如上步骤点击next 进行如下配置:选择spring boot的版本 添加一个web的依赖,该依赖会自动导入Tomcat服务器等相关的包,在Acaliable输入web进行筛选,勾选web下面的web选项,点击finish。至此我们已经成功创建一个新的spring boot项目。 创建好的spring boot项目的如下: 3、如何部署项目、如何创建一个控制器

因未发项目奖金,一名程序员决定删代码泄愤

不问归期 提交于 2021-02-17 04:05:46
长按识别上方二维码,关注公众号: 后端面试那些事 回复“ 报告 ”,获取你的GitHub年度报告! 作者 | 刘琳 来源 | 刘琳 你永远都想不到程序员会因为什么删掉代码。 你可能还记得年初微盟员工凭一己之力,删除自家公司数据库,累计市值蒸发超 30 亿港元的事情。 不仅如此,微盟服务器故障时间长达 8 天之久,最终赔付了商家 1.5 个亿,事后当事人自供是因酒后因生活不如意、无力偿还网贷等个人原因删库。 原本以为这理由已经够奇葩了。 近日,雷锋网编辑发现了一个更奇葩的删库理由:因公司未发奖金,一名程序员怒而修改华为云 obs 对象存储服务代码,导致平台大范围崩溃。 而这位“一时冲动”的程序员也收获了 5 个月的刑期。 看到这里,网友也忍不住吐槽道: 兄弟,不讲武德,付出代价了吧~ 1、 得不到奖励,不如就亲手毁灭 事情还要从今年 4 月份说起。 被告人王某(以下简称:王某)所在的公司项目是一个同城生活服务平台,主要是满足晋城消费者线上、线下的吃、喝、玩、乐、购服务。 2020 年 3 月 22 日,该公司某平台被晋城市商务局选为晋城市同城生活服务平台,受晋城市商务局委托向消费者发放电子消费劵。 2019 年 12 月,时任公司技术部的刘经理交给王某一个任务:开发 obs 代码,如果开发成功公司会有奖励。 在开发过程中王某负责写代码,另一位同事则负责做前段代码工作

Spring Boot Actuator

旧巷老猫 提交于 2021-02-17 03:44:28
编者注 由于开发一个对性能要求很强的后台应用,突然发现部署到aliyun发生问题,而普通笔记本没有任何问题,则需要持续一段时间的监控定位函数执行时间,分析过程,并添加健康检查的可视化内容。 Actuator [Spring Boot Actuator: Production-ready features](Part V. Spring Boot Actuator: Production-ready features) SpringBoot Actuator Spring Boot 包含了Spring Boot Actuator。本段回答一些经常出现的。 更改Actuator Endpoints的Http端口或者地址 在独立应用中,Actuator HTTP端口默认与应用HTTP端口一致。希望Actuator使用不同端口,设置扩展属性: management.server.port 。设置完全不同的网络地址(例如:当你有一个用于管理的内部网卡和使用应用的外部网卡),你可以设置 management.server.address 提供一个服务可以绑定的有效地址。 更多详情,请看 ManagementServerProperties 的源代码, 段落 54.2 "自定义管理服务端口" 在生产就绪特性端口中。 自定义‘whitelabel’错误页 Spring Boot 安装一个

springboot的起步依赖

|▌冷眼眸甩不掉的悲伤 提交于 2021-02-16 22:07:44
加载自动配置的方式2: springboot读取配置文件的方式: 1、读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单。 方式一:使用@Value方式(常用);在@Value的${}中包含的是核心配置文件中的键名 方式二:使用Environment方式;这种方式是依赖注入Evnironment来完成,在创建的成员变量private Environment env上加上@Autowired注解即可完成依赖注入,然后使用env.getProperty("键名")即可读取出对应的值。 2、读取自定义配置文件 为了不破坏核心文件的原生态,但又需要有自定义的配置信息存在,一般情况下会选择自定义配置文件来放这些自定义信息,这里在 resources 目录下创建配置文件author.properties。 注意: 在@ConfigurationProperties注释中有两个属性: locations:指定配置文件的所在位置 prefix:指定配置文件中键名称的前缀(我这里配置文件中所有键名都是以author.开头) 使用@Component是让该类能够在其他地方被依赖使用,即使用@Autowired注释来创建实例。 来源: oschina 链接: