![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Boot
文章平均质量分 88
Sadlay
Never Give Up
展开
-
Spring-Session实现原理以及源码解析
Spring-Session实现原理以及源码解析本篇介绍Spring-Session的整个实现的原理。以及对核心的源码进行简单的介绍!实现原理介绍实现原理这里简单说明描述:就是当Web服务器接收到http请求后,当请求进入对应的Filter进行过滤,将原本需要由web服务器创建会话的过程转交给Spring-Session进行创建,本来创建的会话保存在Web服务器内存中,通过Spring-S...原创 2019-03-13 16:50:58 · 673 阅读 · 0 评论 -
SpringMVC(九)控制器通知
SpringMVC(九)控制器通知在spring AOP中,可以通过通知来增强Bean的功能。同样地,spring MVC也可以给控制器增加通知,于是在控制器方法的前后和异常发生时去执行不同的处理这里涉及4个注解,分别是@ControllerAdvice、@InitBinder、ExceptionHandler和@ModelAttribute。@ControllerAdvice:定义一个控...原创 2018-11-15 18:41:15 · 642 阅读 · 1 评论 -
SpringMVC(八)转发与重定向
SpringMVC(八)转发与重定向关于转发与重定向的定义和区别网上已经有很多介绍了,这里就不在赘述了。下面通过一段代码简单的介绍下Spring MVC中如何使用转发与重定向package com.lay.mvc.controller;import org.springframework.stereotype.Controller;import org.springframework....原创 2018-11-15 18:40:01 · 210 阅读 · 0 评论 -
SpringMVC(七)拦截器
SpringMVC(七)拦截器当请求来到DispatcherServlet时,它会根据HandlerMapping的机制找到处理器,这样就返回一个HandlerExecutionChain对象,这个对象包含处理器和拦截器。这里的拦截器会对处理器进行拦截,这样通过拦截器就可以增强处理器的功能。拦截器的设计所有拦截器都要实现HandlerInterceptor接口。HandlerInterce...原创 2018-11-15 18:37:56 · 184 阅读 · 0 评论 -
SpringMVC(六)文件上传
SpringMVC(六)文件上传Spring MVC对上传文件的支持首先,DispatcherServlet会使用适配器模式,将HttpServletRequest接口对象转换为MultipartHttpServertRequest对象。MultipartHttpServetRequest接口拓展了HttpServletRequest接口的所有方法,而且定义了一些操作文件的方法,这样通过这些方...原创 2018-11-15 18:35:17 · 345 阅读 · 0 评论 -
SpringMVC(五)数据验证
SpringMVC(五)数据验证参数转换出来后,紧跟着往往是需要验证参数的合法性,因此SpringMVC也提供饿了验证参数的机制。一方面,SpringMVC支持JSR-303注解验证,在默认情况看下Spring Boot会引入关于Hibernate Validator机制来支持JSR-303验证规范;另外一方面,因为业务会比较复杂,所以需要自定义验证规则。JSR-303验证JSR-303主要...原创 2018-11-13 19:20:35 · 331 阅读 · 0 评论 -
SpringMVC(四)自定义参数转换规则
SpringMVC(四)自定义参数转换规则处理器获取参数逻辑当一个请求到来时,在处理器执行的过程中,它首先会从HTTP请求和上下文环境来得到参数,如果是简易的参数它会以简单的转换器进行转换,而这些简单的转换器是SpringMVC自身已经提供了的。但是如果转换HTTP请求体(Body),它就会调用HttpMessageConverter接口的方法对请求体的信息进行转换,首先它会判断能否对请求体进...原创 2018-11-13 19:17:10 · 1715 阅读 · 0 评论 -
SpringMVC(三)获取控制器参数
SpringMVC获取控制器参数在无注解下获取参数在没有注解的情况下,SpringMVC也可以获取参数,且参数允许为空,唯一的要求是参数名称和HTTP请求的参数名称保持一致。package com.lay.mvc.controller;import org.springframework.stereotype.Controller;import org.springframework....原创 2018-11-13 19:12:51 · 431 阅读 · 0 评论 -
SpringMVC(二)SpringMVC+MyBatis+Thymeleaf实例
SpringMVC实例本文采用的环境是Spring Boot2+MyBatis+thymeleaf数据库建表CREATE TABLE `t_person` ( `id` int(12) NOT NULL AUTO_INCREMENT, `person_name` varchar(60) NOT NULL, `note` varchar(256) DEFAULT NULL, P...原创 2018-11-13 19:06:48 · 852 阅读 · 0 评论 -
SpringMVC(一)框架设计及流程
Spring MVC(一)框架设计及流程SpringMVC框架设计框架设计图如下上图是SpringMVC框架运行的流程。处理请求先到达控制器(Controller),控制器的作用是进行请求转发,这样它会根据请求的内容去访问模型层(Model);在现今互联网体系中,数据主要从数据库和NoSQL中来,而且对于数据库而言往往还存在事务的机制,为了适应这样的变化,设计者会把模型层再细分为两层,即服...原创 2018-11-13 19:04:22 · 731 阅读 · 0 评论 -
Redis缓存使用及配置
Spring Boot整合Redis缓存Maven依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter原创 2018-11-07 12:50:48 · 5966 阅读 · 0 评论 -
SpringMVC(十)获取请求头参数
SpringMVC(十)获取请求头参数在HTTP请求中,有些网站会利用请求头的数据进行身份验证,所以有时在控制器中还需要拿到请求头的数据。在spring mvc中可以通过注解@RequestHeader进行获取。下面先编写一个前台页面<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head...原创 2018-11-15 18:43:02 · 8737 阅读 · 0 评论 -
REST(一)REST简述
REST(一)REST简述和Spring MVC整合在Http协议发展的过程中,提出了很多的规则,但是这些规则有些繁琐,于是又提出了一种风格约定,它就是REST风格。实际上严格地说它并不是一种协议和标准,而是一种风格。REST简述REST(Representational State Transfer)可以翻译为表现层状态转换。首先需要又资源才能表现,所以第一个名词是资源。有了资源也要根据需...原创 2018-11-23 12:27:42 · 588 阅读 · 0 评论 -
REST(二)开发REST风格端点
REST(二)开发REST风格端点篇幅有限,这里我们就不在赘述service和dao的设计和实现了,如果需要可以文章末尾查看源码。我们先定义用户实体实体package com.lay.rest.entity;import com.lay.rest.entity.enumeration.SexEnum;/** * @Description: * @Author: lay * @...原创 2018-11-23 12:29:05 · 856 阅读 · 0 评论 -
Spring-Session Session共享
Spring-Session Session共享任何一种技术的出现,都是来解决特定的问题的!本篇开始学习Spring-Session相关的一些知识学习整理,让我们开始吧!Spring-Session介绍Spring-Session使用的场景?HttpSession是通过Servlet容器进行创建和管理的,在单机环境中。通过Http请求创建的Session信息是存储在Web服务器...原创 2019-03-12 18:30:14 · 215 阅读 · 0 评论 -
Spring Boot中过滤器Filter具体实现
Spring Boot中过滤器Filter具体实现1.通过 @Bean 注解来配置实现Filter接口package com.lay.spring.filter.demo01;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;...原创 2019-01-22 14:35:28 · 1288 阅读 · 0 评论 -
Filter过滤器工作原理
Filter过滤器工作原理Filter简介Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 Servlet API中提...原创 2019-01-21 10:46:43 · 8204 阅读 · 0 评论 -
Spring Event事件驱动
Spring Event事件驱动事件驱动模型也就是我们常说的观察者,或者发布-订阅模型;理解它的几个关键点:首先是一种对象间的一对多的关系;最简单的如交通信号灯,信号灯是目标(一方),行人注视着信号灯(多方);当目标发送改变(发布),观察者(订阅者)就可以接收到改变;观察者如何处理(如行人如何走,是快走/慢走/不走,目标不会管的),目标无需干涉;所以就松散耦合了它们之间的关系。接下来...原创 2019-01-14 09:46:25 · 861 阅读 · 0 评论 -
Spring Async异步线程
Async异步线程TaskExecutorSpring异步线程池的接口类,其实质是java.util.concurrent.ExecutorSpring 已经实现的异常线程池:SimpleAsyncTaskExecutor:不是真的线程池,这个类不重用线程,每次调用都会创建一个新的线程。SyncTaskExecutor:这个类没有实现异步调用,只是一个同步操作。只适用于不需要多线程的地...原创 2019-01-18 12:49:30 · 340 阅读 · 0 评论 -
Spring Boot使用多数据源
Spring Boot使用多数据源由于项目中需要使用多个数据库,这里简单说下如何在Spring Boot中配置多个数据源。这里我使用的持久层框架是Mybatis。配置文件pom包就不贴了比较简单该依赖的就依赖,主要是数据库这边的配置:mybatis.config-locations=classpath:mybatis/mybatis-config.xmlspring.datasourc...原创 2018-12-14 14:28:51 · 228 阅读 · 0 评论 -
WebSocket应用
WebSocket应用WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通讯——允许服务器主动发送消息给客户端,这样就可以实现从客户端发送消息到服务器,而服务器又可以转发消息到客户端,这样就能够实现客户端之间的交互。目前很多浏览器已经实现了WebSocket协议,但是依旧存在着很多浏览器没有实现该协议,为了兼容哪些没有实现该协议的浏览器...原创 2018-11-27 16:53:17 · 249 阅读 · 0 评论 -
WebSocket原理
作者:Ovear链接:https://www.zhihu.com/question/20215561/answer/40316953来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有1.1和1.0之...转载 2018-11-27 16:51:35 · 131 阅读 · 0 评论 -
REST(四)使用RestTemplate
REST(四)使用RestTemplate在当今微服务中,会将一个大系统拆分为多个微服务系统。按微服务应用的建议,每个微服务系统都会暴露Rest风格的URI请求给别的微服务系统所调用。为了方便完成系统之间的相互调用,spring还给予了模板类RestTemplate,通过它可以很方便地对Rest请求进行系统之间的调用,完成系统之间的数据集成。使用RestTemplate请求后端RestTem...原创 2018-11-23 12:30:46 · 263 阅读 · 0 评论 -
REST(三)处理HTTP状态码、异常和响应头
REST(三)处理HTTP状态码、异常和响应头之前的内容只是讨论了正确的处理结果,而没有讨论当没有找到资源时的处理或者发生异常时的处理。当发生资源找不到或者处理逻辑发生异常时,需要考虑的时返回给客户端HTTP抓鬼你太吗和错误消息的问题。为了简化这些开发,Spring提供了实体封装类ResponseEntity和注解@ResponseStatus。ResponseEntity可以有效封装错误消息和...原创 2018-11-23 12:29:52 · 2796 阅读 · 0 评论 -
Redis发布订阅
redis发布订阅redis配置# 配置redis连接池属性spring.redis.jedis.pool.max-active=10spring.redis.jedis.pool.max-idle=10spring.redis.jedis.pool.max-wait=2000spring.redis.jedis.pool.min-idle=5#配置redis服务器属性sprin...原创 2018-11-07 12:48:40 · 187 阅读 · 0 评论 -
Spring Boot集成Redis及RedisTemplate常用操作
Spring Boot集成Redismaven依赖 <!-- redis 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId&...原创 2018-11-07 12:47:02 · 3296 阅读 · 0 评论 -
Spring Boot配置文件properties数据库密码加密
Spring Boot配置文件数据库密码加密pom添加依赖 <!-- 数据库加密 --> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-b...原创 2018-11-04 16:44:23 · 10423 阅读 · 2 评论 -
Spring Boot IoC(九)使用@Profile
九、使用@Profile在企业开发的过程中,项目往往要面临开发环境,测试环境和生成环境的切换,这样在一个互联网企业中往往需要3套以上的环境。而每一套环境的上下文是不一样的。例如,它们会有各自的数据库资源,这样就要求我们在不同的数据库之间进行切换。为了方便,Spring还提供了Profile机制,使我们可以很方便地实现各个环境之间的切换。java配置假设存在dev_databse和test_d...原创 2018-10-22 18:58:04 · 508 阅读 · 0 评论 -
Spring Boot IoC(八)Bean的作用域
八、Bean的作用域IoC容器最顶级的接口BeanFactory中有两个方法isSingleton(单例)和isPrototype)(原型)isSingeleton:返回true,Bean在Ioc容器中以单例存在(Spring默认)isPrototype:返回true,每次获取Bean,Ioc容器都会创建一个新的Bean。而在JAVA EE 的WEB容器中,还存在page(页面),re...原创 2018-10-22 18:57:13 · 2574 阅读 · 0 评论 -
Spring Boot IoC(七)条件装配Bean
七、条件装配Bean有时候某些客观因素会使得一些Bean无法进行初始化,例如数据库连接池的配置中漏掉一些配置会造成数据源不能连接上。这样的情况下,IoC容器如果还进行数据源的装配,则系统将会抛出异常,导致应用无法继续,这种情况下我们不希望IoC容器去装配数据源。为了处理这样的场景,Spring提供了@Conditianal注解帮助我们,它需要配合另外一个接口Condition(org.spri...原创 2018-10-22 18:56:13 · 842 阅读 · 0 评论 -
Spring Boot IoC(六)使用properties配置文件
六、使用properties配置文件为了使用application.properties文件,需要添加属性文件依赖添加依赖 &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-configurat原创 2018-10-22 18:54:40 · 1072 阅读 · 0 评论 -
Spring Boot IoC(五)Bean生命周期
五、Bean生命周期简介之前的Ioc学习中,我们只是关心如何正确的将Bean装配到Ioc容器中,而没有关心IoC容器如何装配和销毁bean的过程。有时候我们也需要自定义初始化或者销毁Bean的过程,以满足一些Bean的特殊初始化和销毁的要求。为了解决这些问题,我们有必要了解Spring Ioc初始化和销毁Bean的过程,这边是Bean的生命周期的过程。它大致分为Bean定义,bean初始化,b...原创 2018-10-22 18:53:27 · 6451 阅读 · 0 评论 -
Spring Boot IoC(四)依赖注入DI
四、依赖注入DI简介Bean之间的依赖称为依赖注入。例:人穿不同的鞋子去完成不同的活动。比如,人穿篮球鞋去打篮球,穿跑步鞋去跑步锻炼,穿皮鞋去上班等等。所以人和鞋子就是依赖关系。我们用代码来展现依赖,定义两个接口,一个事人类(Person),一个是鞋子(Shoes)package com.lay.ioc.pojo.definiion;public interface Person {...原创 2018-10-22 18:51:13 · 1765 阅读 · 0 评论 -
Spring Boot IoC(三)控制反转IoC
通过配置文件装配1.首先定义一个简单的java对象(Plain Ordinary Java Object) Userpackage com.lay.ioc.pojo;public class User { private Long id; private String userName; private String message; public Long getId() {...原创 2018-10-22 18:50:02 · 2973 阅读 · 0 评论 -
Spring Boot IoC(二)IoC简介和BeanFactory
一、IoC简介Spring最成功的不是技术成本,而是其提出的理念。它所依赖的两个核心理念,一个是控制反转(Inversion of Control,IoC),另一个是面向切面编程(Aspect Oriented Programming,AOP)。IoC容器是Spring的核心,可是说Spring是一种基于IoC容器变成的框架。SpringBoot是基于注解的开发Spring IoC。一个系统可...原创 2018-10-22 18:47:10 · 2346 阅读 · 0 评论 -
Spring Boot IoC(一)知识点整理思维导图
为了更改地学习Spring Boot IoC相关知识,做了一个关于IoC的思维导图方便学习和整理相关的知识点。原创 2018-10-22 18:37:48 · 1899 阅读 · 0 评论 -
SpringBoot集成Nginx
tomcat配置springboot项目直接配置application.properties文件或者yaml文件server.tomcat.remote_ip_header=x-forwarded-forserver.tomcat.protocol_header=x-forwarded-protoserver.tomcat.port-header=X-Forwarded-Portserv...原创 2018-10-17 09:47:04 · 3515 阅读 · 0 评论 -
Spring Boot IoC(十)Spring EL
十、Spring ELSpring EL是Spring提供的非常灵活的spring表达式语言。通过Spring EL可以拥有更为强大的运算规则来更好的装配Bean读取属性文件最常用的是读取属性文件(properties)的值,例如@Value("${database.driverName}")String driver;这里的@Value中的${…}代表占位符,它会读取上下文的属性...原创 2018-10-22 18:58:35 · 428 阅读 · 0 评论 -
Spring AOP(一)知识点及思维导图
Spring AOP(一)思维导图Spring Aop思维导图Spring Aop目录Spring AOP(一)思维导图Spring AOP(二)约定编程Spring AOP(三)AOP概念Spring AOP(四)AOP的引入Spring AOP(五)AOP通知获取参数Spring AOP(六)AOP代理jdk和cglibSpring AOP(七)AOP多切面...原创 2018-10-25 13:04:49 · 4125 阅读 · 2 评论 -
Spring AOP (二)约定编程
约定编程为了更好地理解Spring的AOP,我们先了解下什么是约定编程。##概念约定编程就是将内容织入到约定的流程中。对于约定编程,首先你需要记住得是约定的流程是什么,然乎就可以完成对应的任务,却不需要知道底层设计者是怎么将约定的内容织入到对应的流程中的。为了理解,我们开始举一个简单的约定编程例子。##服务方法我们先定义一个简易的接口接口HelloServicepackage c...原创 2018-10-25 13:11:15 · 1823 阅读 · 1 评论