数据的校验的重要性就不用说了,即使在前端对数据进行校验的情况下,我们还是要对传入后端的数据再进行一遍校验,避免用户绕过浏览器直接通过一些HTTP工具直接向后端请求一些违法数据。最普通的做法就像下面这样。我们通过if/else语句对请求的每一个参数一一校验。@RestController@RequestMapping("/api/person")publicclassPersonController{@PostMappingpublicResponseEntity<PersonRequest>save(@RequestBody...
继续阅读 >
分类:spring
数据的校验的重要性就不用说了,即使在前端对数据进行校验的情况下,我们还是要对传入后端的数据再进行一遍校验,避免用户绕过浏览器直接通过一些HTTP工具直接向后端请求一些违法数据。最普通的做法就像下面这样。我们通过if/else语句对请求的每一个参数一一校验。@RestController@RequestMapping("/api/person")publicclassPersonController{@PostMappingpublicResponseEntity<PersonRequest>save(@RequestBody...
继续阅读 >
2021
06-05
06-05
Spring Cloud Alibaba之Sentinel实现熔断限流功能
微服务中为了防止某个服务出现问题,导致影响整个服务集群无法提供服务的情况,我们在系统访问量和业务量高起来了后非常有必要对服务进行熔断限流处理。其中熔断即服务发生异常时能够更好的处理;限流是限制每个服务的资源(比如说访问量)。spring-cloud中很多使用的是Hystrix组件来进行限流的,现在我们这里使用阿里的sentinel来实现熔断限流功能。sentinel简介这个在阿里云有企业级的商用版本应用高可用服务AHAS;现在有免费...
继续阅读 >
2021
05-29
05-29
Mybatis一级缓存和结合Spring Framework后失效的源码探究
1.在下面的案例中,执行两次查询控制台只会输出一次SQL查询:mybatis-config.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><environmentsdefault="development"><environmentid="development"><transactionManagertype="JDBC"/>...
继续阅读 >
2021
05-26
05-26
用Spring Native将SpringBoot程序转换为GraalVM
Spring发布了一个新工具SpringNativeBeta,用于将现有的SpringBoot应用程序(用Java或Kotlin编写)转换为GraalVM本机映像。目标是在springnative上支持SpringBoot应用程序。GraalVM本机映像很小,经过优化,启动速度很快。然而,与JVM相比,折衷的办法是构建时间更长,运行时优化更少。SpringNative与GraalVM团队合作,充当桥梁,确保GraalVM理解传统的SpringBoot代码。Oracle实验室的高级研究经理VojinJovanovic在谈到他们...
继续阅读 >
2021
05-26
05-26
Spring Boot实现微信小程序登录
使用SpringBoot完成微信小程序登录由于微信最近的版本更新,wx.getUserInfo()的这个接口即将失效,将用wx.getUserProfile()替换,所以近期我也对自己的登录进行更新,并且为了巩固学习到的知识,我自己做了一个小demo,在此分享给大家,希望能对大家有所帮助。废话不多说,直接上代码。前端.wxml<buttonclass="r"bindtap="bindGetUserInfo">同意</button>JS部分bindGetUserInfo(e){letthat=thislettoken=wx.getSt...
继续阅读 >
2021
05-25
05-25
spring获取bean的源码解析
介绍前面一章说了AbstractApplicationContext中的refresh方法中的invokeBeanFactoryPostProcessors。主要是调用BeanFactoryPostProcessor。其中也有获取bean的过程,就是beanFactory.getBean的方法。这一章就说下getBean这个方法。由于spring中获取bean的方法比较复杂,涉及到的流程也非常多,这一章就先说下整个大体的流程。其中的细节会在后面也会慢慢说。源码直接看源码吧@OverridepublicObjectgetBean(Stringname)throws...
继续阅读 >
2021
05-25
05-25
Spring Boot构建系统安全层的步骤
01|SpringSecurity架构及核心类SpringSecurity中的过滤器链SpringSecurity中采用的是管道-过滤器(Pipe-Filter)架构模式,这些过滤器链,构成了SpringSecurity的核心。如下图所示:项目一旦启动,过滤器链将会实现自动配置,如下图所示:UsernamePasswordAuthenticationFilter用来检查输入的用户名和密码,代码如下:publicclassUsernamePasswordAuthenticationFilterextendsAbstractAuthenticationProcessingFil...
继续阅读 >
2021
05-20
05-20
如何在Spring Boot中使用MQTT
为什么选择MQTTMQTT的定义相信很多人都能讲的头头是道,本文章也不讨论什么高大上的东西,旨在用最简单直观的方式让每一位刚接触的同行们可以最快的应用起来先从使用MQTT需要什么开始分析:消息服务器不同应用/设备之间的频繁交互可能涉及一对多的消息传递根据上面列举的这三点,我们大概可以了解到,MQTT最适合的场景是消息做为系统的重要组成部分,且参与着系统关键业务逻辑的情形MQTT,启动!既然决定使用它,我们首先要研...
继续阅读 >
2021
05-20
05-20
spring aop底层原理及如何实现
前言相信每天工作都要用spring框架的大家一定使用过springaop,aop的概念是面向切面编程,相对与传统的面向对象编程oop,aop更关注的是横向的逻辑,比如说一个大型系统中的日志记录,异常处理,性能监控等等,都是各个模块都需要的操作,那样代表着这些操作会散落在系统的各个地方,不易管理且杂乱无章,而aop就是关注的这些,aop将这些操作与业务代码分离,统一成一个个的切面,针对这些个切面进行编程处理。springaop使得我们...
继续阅读 >
2021
05-20
05-20
深入学习spring cloud gateway 限流熔断
目前,SpringCloudGateway是仅次于SpringCloudNetflix的第二个最受欢迎的SpringCloud项目(就GitHub上的星级而言)。它是作为SpringCloud系列中Zuul代理的继任者而创建的。该项目提供了用于微服务体系结构的API网关,并基于反应式Netty和ProjectReactor构建。它旨在提供一种简单而有效的方法来路由到API并解决诸如安全性,监视/度量和弹性之类的普遍关注的问题。基于Redis限流SpringCloudGateway为您提供了许多功能和配置...
继续阅读 >
2021
05-20
05-20
spring boot实现自动输出word文档功能的实例代码
springboot实现自动输出word文档功能本文用到ApachePOI组件组件依赖在pom.xml文件中添加<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.0</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.0</version></depen...
继续阅读 >
2021
05-20
05-20
Spring Bean实例的创建及构造器的挑选
一、举个栗子publicclassBeanServiceImplimplementsBeanService{}@ConfigurationpublicclassConfigurationBean{@BeanpublicBeanServicebeanService(){BeanServiceImplbeanService=newBeanServiceImpl();System.out.println("beanService:"+beanService);returnbeanService;}@Bean//@Bean如果不知道name,默认bean的name为方法名,下面等同于@Bean("beanService1"...
继续阅读 >
2021
05-19
05-19
Spring-IOC容器中的常用注解与使用方法详解
Spring是什么?Spring是一个轻量级Java开发框架,最早有RodJohnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEEfull-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。体系结构核心容器(CoreContainer):Spring的核心容器是其他模块建立的基础,有Spring-core、Spring-beans、...
继续阅读 >
2021
05-19
05-19
Spring Aop基本流程原理示例详解
一、代理对象的创建过程:AbstractAutowireCapableBeanFactory#initializeBeanprotectedObjectinitializeBean(StringbeanName,Objectbean,@NullableRootBeanDefinitionmbd){if(System.getSecurityManager()!=null){AccessController.doPrivileged((PrivilegedAction<Object>)()->{invokeAwareMethods(beanName,bean);returnnull;},getAccessControlContext());}else{...
继续阅读 >
2021
05-15
05-15
spring是如何实现声明式事务的
前言今天我们来讲讲spring的声明式事务。开始说到声明式事务,我们现在回顾一下事务这个概念,什么是事务呢,事务指的是逻辑上的⼀组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功。从而确保了数据的准确与安全。事务有着四大特性(ACID),分别是原子性(Atomicity)原⼦性是指事务是⼀个不可分割的⼯作单位,事务中的操作要么都发⽣,要么都不发⽣。⼀致性(Consisten...
继续阅读 >
项目介绍基于Layui的后台管理系统模板,扩展Layui原生UI样式,整合第三方开源组件,提供便捷快速的开发方式,延续LayuiAdmin的设计风格,持续完善的样式与组件的维护,基于异步Ajax的菜单构建,相对完善的多标签页,单标签页的共存,为使用者提供相对完善的开发方案,只为成为更好的轮子,项目不定时更新,建议Starwatch一份如果你需要无组件整合与示例页面的基础框架,请前往PearAdminLayui基础版本项目结构PearAdmin...
继续阅读 >