
springboot
耗子肉
这个作者很懒,什么都没留下…
展开
-
springboot系列24,SpringBoot的外部化配置(下)
扩展外部化配置要做到扩展外部化配置,我们通过之前分析可以知道,environment是放在上下文中使用的,那么肯定要在上下文初始化之前,因为上下文初始化以后,后面其他工具的初始化可能会用到environment,那在那个时候再初始化就没有意义了。首先是springboot,我们知道springboot的入口是run,进去看源码:通过之前的分析我们知道,上下文开始初始化是在refre...原创 2020-02-25 20:07:19 · 367 阅读 · 0 评论 -
springboot系列23,SpringBoot的外部化配置(上)
关于外部化配置其实不用多说,springboot太常见了,把内部配置转变成properties或是yml或是其他形式,更方便的进行配置和管理。关于运用场景关于外部化配置的运用其实都很常见,主要有: xml Bean定义的属性占位符 Spring关于xml外部化配置haozi-context.xml<?xml version="1.0" encoding="UTF-...原创 2020-02-24 21:49:21 · 724 阅读 · 0 评论 -
springboot系列22,WebFlux(下)
核心组件初始化流程其实看着源码对照着流程图,很容易就能看懂流程是什么样,这里只是描述一下,具体源码就不贴了,自己去看吧。首先上面部分:自动装配WebFluxAutoConfiguration,他import了EnableWebFluxConfiguration,这个类的作用就是把springboot配置的spring.webflux导进来,用于后面配置。这个类找父类可以找到WebFlu...原创 2020-02-24 00:38:50 · 382 阅读 · 0 评论 -
springboot系列21,WebFlux(上)
Spring WebFlux是一套全新的Reactive Web技术栈,实现完全非阻塞、支持Reactive Streams、背压等特性,而且运行的环境除了Servlet容器(Tomcat、Jetty、Undertow),还有Netty等。WebFlux可以和WebMVC共存,在springboot中,mvc的优先级更高。编程模型编程模型有两种,注解驱动和函数式编程WebFlux与We...原创 2020-02-22 18:19:05 · 1972 阅读 · 0 评论 -
springboot系列20,Reactive(下)
Reactor框架核心APIMono:0-1的非阻塞结果Flux:0-n的非阻塞序列Scheduler:Reactor调度线程池接下来:实战加依赖 <dependency> <groupId>io.projectreactor</groupId> <artifact...原创 2020-02-21 20:10:50 · 334 阅读 · 0 评论 -
springboot系列19,Reactive(上)
理解Reactive关于Reactive,非阻塞的实现,具体是什么,自己百度。Reactive实现框架RxJava:Reactive ExtensionsReactor:Spring WebFlux Reactive类库Flow API:java9 Flow API 实现对于现在大多数编程来说,都是阻塞式的,或者说是串行的,下面一行代码依赖上一行代码,上面执行完才会执行下面...原创 2020-02-21 18:21:41 · 1422 阅读 · 0 评论 -
springboot系列18,Servlet(4)
SpringBoot对于嵌入式Servlet容器之前一直是讲的Spring对servlet web的支持,接下来说springboot。关于嵌入式servlet容器,springboot默认使用的是tomcat,关于嵌入式容器和非嵌入式容器本质上是没有区别的,那在springboot环境下,做出了几个调整:不支持web.xml:使用RegistrationBean或@Bean不支持...原创 2020-02-20 16:19:22 · 237 阅读 · 0 评论 -
springboot系列17,Servlet(3)
自定义实现异步servlet/** * 异步servlet */@WebServlet( asyncSupported = true, //激活异步特性 name = "asyncServlet", //servlet名字 urlPatterns = "/asyncservlet" //映射)p...原创 2020-02-19 17:21:09 · 224 阅读 · 1 评论 -
springboot系列16,Servlet(2)
Servlet异步操作顾名思义:异步关于异步操作其实很简单,ResponseBody返回值需要使用DeferredResult,具体可以看DeferredResult的源码,这里不贴了。@ComponentScan(basePackages = "com.haozi.servlet.controller")public class DefaultAnnotationConfigDi...原创 2020-02-18 21:29:24 · 275 阅读 · 0 评论 -
springboot系列15,Servlet(1)
关于servlet的含义,搜索就能搜索出好多定义,主要是用来处理交互数据、生成数据、生成动态的web内容等。关于servlet组件注册方式:1.传统web.xml,2.注解注册,3.编码注册Servlet注册:1.web.xml部署<servlet>和<servlet-mapping>,2.@WebServlet,3.ServletContext#addServle...原创 2020-02-18 19:53:01 · 272 阅读 · 0 评论 -
springboot系列14,REST(下)
自定义参数返回也就是说不使用@ResponseBody来实现传出格式为Properties首先@RestController是组合注解,里面包含@ResponseBody,所以替换为@Controller/** * {@link java.util.Properties} {@link HandlerMethodReturnValueHandler} 实现 */public c...原创 2020-02-18 13:03:21 · 184 阅读 · 0 评论 -
springboot系列13,REST(中下)
关于媒体类型关于REST对于媒体类型的处理,主要是这两条语句,以及后面的匹配,具体含义见前文。第一行:经过ContentNegotiationManager中的`ContentNegotiationStrategy进行解析, 如果匹配成功,会返回MediaType列表,如果不成功,返回*/*,也就是MediaType.ALL第二行:这个地方可以从Controller中的@R...原创 2020-02-18 00:05:05 · 351 阅读 · 0 评论 -
springboot系列12,REST(中)
Spring MVC REST内容协商原创 2020-02-17 17:57:54 · 260 阅读 · 0 评论 -
springboot系列11,REST
REST定义:REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。架构约束:统一接口:有统一的资源管理C/S架构无状态:用户状态主要在客户端,服务端没有状态...原创 2020-02-15 16:33:33 · 359 阅读 · 0 评论 -
springboot系列10,MVC的视图应用(下)
多视图处理器并存此处是指Thymeleaf视图处理器和jsp视图处理器并存,之前已经配置好了Thymeleaf,接下来把jsp引入进来,其对应的处理器为InternalResourceViewResolver加依赖 <dependency> <groupId>javax.servlet</groupId> ...原创 2020-02-12 18:51:34 · 236 阅读 · 0 评论 -
springboot系列9,MVC的视图应用
新一代服务端模板引擎:Thymeleaf支持的模板类型:HTML、XML、TEXT、JS、CSS、RAW语法:<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"> <head> <title>Good Thymes Virtual Grocery...原创 2020-02-12 12:19:44 · 296 阅读 · 0 评论 -
springboot系列8,SpringBoot下的Spring MVC
在SpringBoot时代,规约大于配置,对于Spring MVC简化分为几点:完全自动装配:用户不再需要手动配置那么多实现接口条件装配:例如@xxxConditional外部化配置:不用多说了完全自动装配DispatcherServlet:DispatcherServletAutoConfiguration源码中,首先会根据条件生成一个servlet将上面生成...原创 2020-02-11 18:14:34 · 207 阅读 · 0 评论 -
springboot系列7,Spring MVC(下)
mvc的自动装配在SpringFramework时代mvc就可以进行自动装配了,但前提是servlet依赖是3.0+servlet SPI:ServletContainerInitializer当servlet容器启动的时候,ServletContainerInitializer中的onStartup方法会被回调,ServletContext中可动态装载监听器或过滤器或其...原创 2020-02-10 20:45:35 · 270 阅读 · 0 评论 -
springboot系列6,Spring MVC
注意:本章只是mvc,跟springboot没有关系再说MVC之前,先说一下web的基础架构:servlet,servlet属于非常底层的api,在开发过程中大多数使用http的形式去实现。servlet特点:请求/响应式(Request/Response)、屏蔽网络通讯的细节(使我们不需要关注通讯相关的东西,只关心请求参数请求头等我们需要的)、具有完整的生命周期servlet职责:处...原创 2020-02-09 20:20:36 · 138 阅读 · 0 评论 -
springboot系列5,SpringApplication运行阶段
对于SpringApplication准备阶段,实际上就是构造对象阶段,而运行阶段,就是.run。对于运行阶段的运行流程:1.加载SpringApplication运行监听器(SpringApplicationRunListeners)利用spring工厂加载机制,读取SpringApplicationRunListener对象集合,并封装到组合类SpringApplicationRu...原创 2020-02-09 16:27:31 · 331 阅读 · 0 评论 -
springboot系列4,SpringApplication准备阶段
关于SpringBoot,大致可分为基础技术和衍生技术。基础技术主要是关于SpringFramework的,那SpringFramework中,我们可大致分为几块:Spring 模式注解:例如@Service、@Component等,详情见之前文章。Spring 应用上下文:无需多解释,核心组件,用来装配bean、相应的生命周期。Spring 工厂加载机制:之前文章自动装配。S...原创 2020-02-08 17:37:50 · 399 阅读 · 0 评论 -
springboot系列3,自动装配
定义:基于规约大于配置的原则,实现Spring组件自动装配的目的。对于手动装配,不管是xml或是注解都需要配,就算有enable模块可以简化配置配置,但是还是要按照需要手动配,自动装配可实现插拔式方法。装配方式:模式注解、@Enable模块、条件装配、工厂加载机制实现方式:1.激活自动化装配使用注解@EnableAutoConfiguration2.实现自动化装配XXXAu...原创 2020-02-08 14:39:14 · 173 阅读 · 0 评论 -
springboot系列2,手动装配
spring framework手动装配spring模式注解装配:用于声明在应用中扮演“组件”角色的注解,例如@Component @Servbice @Configuration等。例如:spring framework中,任何标记@Repository注释的类都是实现了仓储角色的模式注解。@Component标注在任何一个类上,标识这个类是可扫描的对象。spring framewo...原创 2020-01-16 17:59:58 · 417 阅读 · 0 评论