最近在用spring boot 做微服务,所以对于异常信息的 [友好展示]有要求,我设计了两点: 一. 在业务逻辑代码中,异常的抛出 我做了限定,一般只会是三种: 1. OmcException //自己写的异常包装类 ,主要用来处理业务异常 2. IllegalArgumentException //参数异常类,其实这个可以不要,只是在我的系统中,我想把参数异常和业务异常做区分 3. 其他的异常,都按Exception抛 //因为它的抽象层次最高,所以在系统中按优先级最低进行处理,除非必要(如…
1 概述 什么?都2020年了还在Spring Boot的配置文件中写明文密码? 虽然是小项目,明文也没人看. 明文简单快捷方便啊!!! 你看直接用户名root密码123456多么简单!!! ... 不废话了,这篇文章主要讲了如何使用jasypt-spring-boot这个开源组件来进行配置文件的加密,包括简单加密以及非对称加密,同时也介绍了使用jar/war部署时如何输入加密口令. 2 简单加密 jasypt简单加密就是直接把加密口令写死在文件中.(好吧这样就差不多大概跟没加密一样... )…
前言:在讲述内容之前 希望大家对设计模式有所了解 即使你学会了本片的内容 也不知道什么时候去使用 或者为什么要这样去用 观察者模式: 观察者模式是一种对象行为模式.它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.在观察者模式中,主体是通知的发布者,它发出通知时并不需要知道谁是它的观察者,可以有任意数目的观察者订阅并接收通知.观察者模式不仅被广泛应用于软件界面元素之间的交互,在业务对象之间的交互.权限管理等方面也有广泛的应用 观察者模式(O…
第一步:添加springboot的配置文件 首先我先贴出我的配置 添加依赖包 <!-- spring boot devtools 依赖包. --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <…
在一个项目中的异常我们我们都会统一进行处理的,那么如何进行统一进行处理呢? 新建一个类GlobalDefaultExceptionHandler, 在class注解上@ControllerAdvice, 在方法上注解上@ExceptionHandler(value = Exception.class),具体代码如下: com.kfit.base.exception.GlobalDefaultExceptionHandler package com.kfit.base.exception; imp…
采用Maven 聚合工程搭建 Spring Cloud 使用工具: IntelliJ IDEA    版本: 2019.2.2 maven             版本: 3.6.0 JDK                 版本:1.8.0_181 1.搭建聚合工程的父模块 2.配置父模块POM <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apac…
一,为什么要使用多模块? 1,结构更清晰,方便管理    如果只是一个小项目当然没有问题,    但如果功能越增越多则管理越来越复杂,    多模块可以使项目中模块间的结构分离   2,把项目划分成多个模块后, 能够方便模块的复用 例如:web/api/管理后台 都会用到一些数据表, 对数据表的封装(mapper)会是都需要复用的模块   3,减少各个模块对不必要功能的依赖,     4,不同的模块可以由不同的工程师来维护,       避免重要的代码被经验不足的工程师改动受影响    说明:刘…
一,为什么要做参数验证? 永远不要相信我们在后端接收到的数据, 1,防止别人通过接口乱刷服务:有些不怀好意的人或机构会乱刷我们的服务,例如:短信接口, 相信大家可能很多人在工作中遇到过这种情况 2,防止sql注入等行为:如果对数据会行严格的验证,可以过滤掉大量的攻击行为 3,防止客户端出错后的生成数据错误 所以,后端必须进行参数校验, 即使前端已经校验过,因为我们不能保证我们收到的请求都是由我们的前端程序发出 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblog…
1.Spring Boot: server.session.cookie.comment = #注释会话cookie. server.session.cookie.domain = #会话cookie的域. server.session.cookie.http-only =#“HttpOnly”标志为会话cookie. server.session.cookie.max-age = #会话cookie的最大年龄(以秒为单位). server.session.cookie.name = #会话co…
在一个项目中的异常我们我们都会统一进行处理的,那么如何进行统一进行处理呢? 新建一个类GlobalDefaultExceptionHandler, 在class注解上@ControllerAdvice, 在方法上注解上@ExceptionHandler(value= Exception.class),具体代码如下: com.kfit.base.exception.GlobalDefaultExceptionHandler packagecom.kfit.base.exception; impor…