
功能集成springboot
文章平均质量分 79
功能集成springboot
ximeneschen
这个作者很懒,什么都没留下…
展开
-
SpringBoot升级到2.3.x后返回message为空
一、背景SpringBoot项目版本升级:2.1.6.RELEASE -> 2.3.9.RELEASE版本升级后,原有一些自定义异常的的错误message无法返回了。// 预期结果{ "timestamp": "2021-03-02T06:36:09.458+00:00", "status": 500, "error": "Internal Server Error", "message": "用户名已存在", "path": "/user"}//转载 2022-04-05 02:31:54 · 821 阅读 · 0 评论 -
@ResponseStatus & @ControllerAdvice
一、@ResponseStatus注解作用@ResponseStatus注解是spring-web包中提供的一个注解,从下图部分源码中可以看出@ResponseStatus注解具有value、code、reason 三个属性。代码中的作用:在实际项目中,可能碰到这种情况,我们提供的服务,调用方并不需要json报文中的消息,调用方只关注响应码,比如200,代表调用正常;404,代表请求资源不存在;502,代表系统异常。那么我们就可以使用@ResponseStatus实现这一功能二、@Respon原创 2022-03-23 23:52:31 · 1443 阅读 · 0 评论 -
springboot @JsonSerialize 的使用
解决前端显示和后台存储数据单位不一致的问题。在返回对象时,进行自定义数据格式转换。写一个类继承JsonSerializer 抽象类, 实现其serialize()方法,然后在方法中写入转换规则即可举例是把Date时间戳从 毫秒 转换成 秒 为单位import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.databind.JsonSerializer;import com.fasterxml.ja转载 2021-09-27 12:24:18 · 647 阅读 · 0 评论 -
集成手机短信接口
一、先到阿里云市场买套餐(有0元试用)开通后控制台可以看到以下:然后参照文档进行调试和自定义短信模板二、集成原创 2021-09-03 19:41:45 · 191 阅读 · 0 评论 -
Spring Validation 校验
一、概述在 Web 应用中,客户端提交数据之前都会进行数据的校验,比如用户注册时填写的邮箱地址是否符合规范、用户名长度的限制等等,不过这并不意味着服务端的代码可以免去数据验证的工作,用户也可能使用 HTTP 工具直接发送违法数据。为了保证数据的安全性,服务端的数据校验是必须的。先理清概念:JSR-303 是 JavaEE 6 中的一项子规范,又称作 Bean Validation,提供了针对 Java Bean 字段的一些校验注解,如@NotNull,@Min等。JSR-349 是其升级版本,添加原创 2021-09-01 15:59:27 · 980 阅读 · 1 评论 -
java实体类时间属性的解决方案
一、java实体类型与mysql数据库对应的时间类型二、java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp的区别java.util.Date日期格式为:年月日时分秒java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据]java.sql.Time日期格式为:时分秒java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒)关系:java.util.Date这个类是java.s原创 2021-08-24 23:03:04 · 10232 阅读 · 0 评论 -
自定义 Spring Boot Starter
一、引言什么是Spring Boot Starter呢?我们直接来看看官网是怎么介绍的吧。Starters are a set of convenient dependency descriptors that you can include in your application. You get a one-stop shop for all the Spring and related technologies that you need without having to hunt throug原创 2021-08-17 17:22:48 · 242 阅读 · 0 评论 -
过滤器、拦截器、监听器的区别与使用
一、拦截器与过滤器的区别过滤器 (Filter)过滤器的配置比较简单,直接实现Filter 接口即可,也可以通过@WebFilter注解实现对特定URL拦截,看到Filter 接口中定义了三个方法。init() :该方法在容器启动初始化过滤器时被调用,它在 Filter 的整个生命周期只会被调用一次。注意:这个方法必须执行成功,否则过滤器会不起作用。doFilter() :容器中的每一次请求都会调用该方法, FilterChain 用来调用下一个过滤器 Filter。destroy():原创 2021-08-17 00:45:07 · 4700 阅读 · 0 评论 -
It is not allowed to rename or repackage the original archive “sapjco3.jar“
一、解决SpringBoot项目使用sapjco依赖jar包的冲突问题1.1 背景在我之前的博文《SpringMVC + RabbitMQ实战(XML配置rabbit,监听多条队列)》提到过使用SpringMVC而不是使用SpringBoot的原因是SpringBoot与sapjco.jar的冲突问题。It is not allowed to rename or repackage the original archive “sapjco3.jar”但实际上这个sapjco的问题是可以被解决的。转载 2021-08-05 10:52:25 · 1247 阅读 · 0 评论 -
分布式事务原理
一、基础理论在讲解具体方案之前,我们有必要了解一些分布式事务所涉及到的基础理论知识。事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务应该具有 4 个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为 ACID 特性。分布式事务分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。例如在大型电商系统转载 2021-07-23 17:37:14 · 2312 阅读 · 0 评论 -
Spring Cache
在WEB后端应用程序来说,耗时比较大的往往有两个地方:一个是查数据库,一个是调用其它服务的API(因为其它服务最终也要去做查数据库等耗时操作)。重复查询也有两种。一种是我们在应用程序中代码写得不好,写的for循环,可能每次循环都用重复的参数去查询了。这种情况,比较聪明一点的程序员都会对这段代码进行重构,用Map来把查出来的东西暂时放在内存里,后续去查询之前先看看Map里面有没有,没有再去查数据库,其实这就是一种缓存的思想。另一种重复查询是大量的相同或相似请求造成的。比如资讯网站首页的文章列表、电商网站首页的原创 2021-07-21 10:30:16 · 1475 阅读 · 2 评论 -
MybatisPlus中使用多表数据,合并数据后再分页
List<Project> projectList = sysProjectMapper.selectList(queryWrapperProject); List<ProjectReported> projectReportedList = sysProjectReportedMapper.selectList(queryWrapper); List<ProjectReported> finalProject = new ArrayL..原创 2021-05-24 11:56:05 · 2415 阅读 · 0 评论 -
常用日志门面和日志实现
一、日志门面SLF4J简单日志门面(Simple Logging Facade For Java) SLF4J主要是为了给Java日志访问提供一套标准、规范的API框架,其主要意义在于提供接口,具体的实现可以交由其他日志框架,例如log4j和logback等。 当然slf4j自己也提供了功能较为简单的实现,但是一般很少用到。对于一般的Java项目而言,日志框架会选择slf4j-api作为门面,配上具体的实现框架(log4j、logback等),中间使用桥接器完成桥接。官方网站: https://www转载 2021-04-26 13:43:37 · 1406 阅读 · 1 评论 -
幂等性原理
一、幂等 (idempotence) 的概念幂等的数学概念幂等是源于一种数学概念。其主要有两个定义如果在一元运算中,x 为某集合中的任意数,如果满足 f(x) = f(f(x)) ,那么该 f 运算具有幂等性,比如绝对值运算 abs(a) = abs(abs(a)) 就是幂等性函数。如果在二元运算中,x 为某集合中的任意数,如果满足 f(x,x) = x,前提是 f 运算的两个参数均为 x,那么我们称 f 运算也有幂等性,比如求大值函数 max(x,x) = x 就是幂等性函数。幂等性在开发中的概念原创 2021-02-21 15:43:11 · 1926 阅读 · 3 评论 -
Cookie,Session,Token
一、HTTP协议是无状态的何为无状态:服务器不会记录用户的浏览记录,每次请求都是一个新的HTTP协议,就是请求加响应。不用记录谁刚刚发了HTTP请求, 每次请求都是全新的。二、管理会话随着网络的发展,交互式网站例如需要登录的网站的兴起,服务器就面临一个问题,如何管理回话,如何记住那些人登录过系统,哪些人往自己的购物车中放商品,简单地说就是如何区分不同的用户三、cookiecookie 是...原创 2020-06-18 23:09:43 · 303 阅读 · 0 评论 -
SpringBoot集成druid
一、druid官方github地址https://github.com/alibaba/druid二、整合第三方技术的两种方式自定义官方starter三、自定义方式创建数据源 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <versi原创 2021-01-22 10:18:10 · 112 阅读 · 0 评论 -
SpringBoot项目优化和Jvm调优及VisualVM远程连接监控JVM(JMX连接)
项目调优作为一名工程师,项目调优这事,是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。在这边有一篇比较好的文章,推荐给大家!SpringBoot项目配置Tomcat和JVM参数一、修改配置文件关于修改配置文件application.properties。SpringBoot项目详细的配置文件修改文档其中比较重要的有:server.tomcat.max-connections=0 # Maximum number of connecti原创 2020-12-24 10:43:57 · 1364 阅读 · 1 评论 -
SpringBoot 集成ip2region
一、 什么是ip2regionip2region:可以根据他获取一个具体ip的信息,国家、具体地址、网络服务商二、添加依赖<dependency> <groupId>org.lionsoul</groupId> <artifactId>ip2region</artifactId> <version>1.7</version></dependency>三、工具类public c原创 2020-11-25 09:21:54 · 1277 阅读 · 0 评论 -
SpringBoot跳转网页的三种方法
下面三个方法均在该类中:@Controllerpublic class TestController { ......}1、使用ModelAndView @RequestMapping("redirect") public ModelAndView redirect(){ return new ModelAndView("redirect:http://www.baidu.com"); }2、使用SpringMVC @RequestMapping转载 2020-12-17 09:57:52 · 2886 阅读 · 0 评论 -
springboot整合shiro-关于登出时,redis中缓存没有清理干净的问题
原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/84722724 ©王赛超如果是跟着我的shiro系列博客敲下来的,其实还有一个bug,这是一个网友遇到的,他在登出的时候,发现redis中当前用户身份认证缓存没有清理掉,之前在 springboot整合shiro-ehcache缓存(五) 中测试添加权限之后,清理的是所有用户的缓存,所以没有发现这个问题。还记得上一篇博客: springboot整合shiro-实现自己原创 2020-12-15 22:56:55 · 1522 阅读 · 0 评论 -
记录SpringBoot集成Shiro使用Redis作缓存遇到的一个问题(Key-Value)互换
在实现Shrio Cache的实现类中public class RedisCache<K,V> implements Cache<K,V> { private static Logger logger = LoggerFactory.getLogger(RedisCache.class); private String cacheName; public RedisCache() { } public RedisCache(String原创 2020-12-15 15:15:58 · 570 阅读 · 1 评论 -
springboot集成kaptcha 2.3.2
首先百度下载个 kaptcha-2.3.2.jar 的jar包,下载后我直接放到桌面打开cmd窗口cd C:\Users\Administrator\Desktopmvn install:install-file -DgroupId=com.github.penggle -DartifactId=kaptcha -Dversion=2.3.2 -Dfile=kaptcha-2.3.2.jar -Dpackaging=jar -DgeneratePom=true这样就直接安装到了你的maven仓.转载 2020-11-25 09:04:55 · 322 阅读 · 0 评论 -
Spring Boot AOP记录用户操作日志
一、引入必要依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!-- aop依赖 --> <dependency>原创 2020-11-25 08:53:16 · 440 阅读 · 0 评论 -
Mybatis Plus为什么提供BaseMapper和IService两个相似CRUD操作的接口?
转载自:https://blog.csdn.net/krismile__qh/article/details/99590872熟悉 mybatis-plus 的人都知道,mybatis-plus 提供两种包含预定义增删改查操作的接口:com.baomidou.mybatisplus.core.mapper.BaseMappercom.baomidou.mybatisplus.extension.service.IServiceMybatis-plus提供了2个接口1个类:BaseMapper 针对转载 2020-11-19 13:20:43 · 1460 阅读 · 1 评论 -
Springboot配置拦截器出现“No mapping for GET“静态资源的情况
出现这种情况,假定css,js,fonts文件都在/resources/static下,那么在webConfig.java内加上这两个函数private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public转载 2020-11-12 10:53:48 · 6492 阅读 · 2 评论 -
Spring Boot静态资源访问和配置全解析
在web开发中,静态资源的访问时必不可少的,比如image、css、js等。SpringBoot对静态资源访问提供了很好的支持,使用其提供的基本默认配置基本可以满足开发需求,同时,又支持开发人员进行自定义配置。一、默认静态资源映射规则Spring Boot 默认将 / 所有访问映射到以下目录:**classpath:/staticclasspath:/publicclasspath:/resourcesclasspath:/META-INF/resources接下来,在main/resour转载 2020-11-11 20:54:40 · 142 阅读 · 0 评论 -
web前后台数据交互
1.利用cookie对象Cookie是服务器保存在客户端中的一小段数据信息。使用Cookie有一个前提,就是客户端浏览器允许使用Cookie并对此做出相应的设置。一般不赞成使用Cookie。(1)后台代码Cookie cookie= new Cookie( "name" , "hello" ); response.addCookie(cookie);(2)前台代码Cookie[] cookies=request.getCookies(); for ( int i= 0 ;i<cook转载 2020-11-10 13:55:21 · 323 阅读 · 0 评论 -
springboot单元测试中@Autowired自动注入的类一直是null
另附大佬方法原创 2020-11-09 21:11:41 · 1469 阅读 · 0 评论 -
springboot集成邮箱功能
1. 写在前面我们都知道,如果系统出现预警,或者有一些监控需求,我们可以通过发送短信或者邮件来进行通知,本篇文章呢,我就打算来讲解一下SpringBoot的邮件服务。我们都知道发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。以前我们会使用 JavaMail 相关 api 来写发送邮件的相关代码,后来 Spring 推出了 JavaMailSender 更加简化了邮件发送的过程,在之后 Spring Boot 对此进行了封装就有了现在的 spring-boot-starte转载 2020-11-09 17:55:46 · 960 阅读 · 0 评论