- 博客(568)
- 资源 (1)
- 收藏
- 关注

原创 Spring 常用官方地址
Spring 官方网址官方文档地址Spring Framework 官方文档地址针对多个Spring Framework 版本的列表,内含html版本和pdf版本Spring Boot 官方文档地址针对多个Spring Boot 版本的列表,内含html版本和pdf版本Spring Cloud 官方文档地址仅html版本,该地址针对某一Spring Cloud...
2019-01-16 14:55:56
1452

原创 Springboot 应用常见的BeanPostProcessor清单
本文基于一个Springboot + JPA + Web MVC 项目列出了其中用到的所有BeanPostProcessor并给出要点功能介绍以备开发人员参考。具体所使用的配置如下 :Springboot 2.1.1Spring Data JPA 2.1.3 RELEASESpring Web 5.1.3 RELEASESpring Web MVC 5.1.3 RELEASE...
2019-01-08 22:57:39
3119
2

原创 Spring的各种PostProcessor
简介 : Spring 的几种 PostProcessorSpring 有如下几种PostProcessor : 1. BeanDefinitionRegistryPostProcessor 2. BeanFactoryPostProcessor 3. BeanPostProcessorBeanDefinitionRegistryPostProcessorBeanDefini
2017-11-21 18:31:39
4974
原创 Flowable学习一点点0001 -- 表名分类
以下知识点基于 Flowable v6.6.0Flowable v6.6.0 的数据库表有79个。Flowable数据库表全都使用ACT_前缀,该前缀后的两个字符表示该表的分类 :ACT_RE_* RE代表repository。这类表保存诸如流程定义,流程资源(图片,规则等)静态static信息。ACT_RU_* RU代表runtime。这类表用来保持流程实例process instance,用户任务user task,变量variable,任务job等概念的运行时数据。Flowable.
2021-04-05 19:24:47
1005
原创 非Spring环境单独引入AnnotationConfigApplicationContext注解方式使用组件
package com.paas.app.hello;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import org.springframework.context.annotation.ComponentScan;// @Configuration // 这种模式下该注解已经没有必要使用@ComponentScan(value = "com.paas.app.hello")
2021-04-03 08:53:14
1077
原创 架构思考 : 系统功能,数据和功能场景
目录数据分类系统功能系统是什么 ?功能场景是什么 ?数据分类能动数据 Actor用户管理员 (其实也是用户)员工 (一般是管理员,或者业务人员)消费者 (一般意义上的用户)被动数据 Data – 真正意义上的数据基础数据 (支撑性数据)用来构成核心业务可以开展的舞台的那些数据举例 : 行政区域,组织结构,字典数据,标签数据业务数据 (C位数据,主演数据,主角数据)频繁由核心业务场景产生的数据举例电商应用购物 : 订单,支付,评价等数据就是业务数据代理记
2020-12-26 21:04:19
1193
2
原创 Ubuntu18 MySQL错误解决 : ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘
这里写自定义目录标题基本信息操作步骤基本信息Server version: 5.7.32-0ubuntu0.18.04.1 (Ubuntu)操作步骤编辑配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,在段落[mysqld]增加行 skip-grant-tables重新启动 MySQLservice mysql restart重新设置 MySQL 根用户 root 的密码## 登录 mysql, 此时并不真正需要输入密码,回车直接跳过密码输入即可进入 MySQL
2020-12-19 11:54:27
519
1
原创 分析模式阅读笔记 P314 :构建类型图的三个视角
构建类型图(type diagrams)的三个视角(perspective) :概念模型人类思考世界的方式纯脑中印象(mental picture),忽略任何技术细节概念模型的两种变化表示世界的结构 : represent the read world表示我们知道什么 : represent what we know about the world规范模型定义系统中软件组件的接口可以是显式的(explicit)或者隐式的(implicit)隐式的规范模型更接近概念模
2020-07-11 10:04:21
539
原创 分析模式阅读笔记 P314 : Type 和 Class 的区别
Type 和 Class 的区别Type描述Class的接口Interface一个Type可以被多个Class实现,一个Class可以实现多个Type一个Type可以被不同语言中的Class来实现位置 :* 书目 分析模式 – 可复用的对象模型 Martin Fowler 人民邮电出版社* 页码 : P314...
2020-07-11 09:27:02
506
原创 Spring Context : EventListenerMethodProcessor
1. 概述EventListenerMethodProcessor 是 Spring 事件机制中非常重要的一个组件。它管理了一组EventListenerFactory组件,用来将应用中每个使用@EventListener注解定义的事件监听方法变成一个ApplicationListener实例注册到容器。换句话讲,框架开发者,或者应用开发者使用注解@EventListener定义的事件处理方法,如果没有EventListenerMethodProcessor的发现和注册,是不会被容器看到和使用的。Ev
2020-05-16 20:49:05
1481
原创 Appium 学习笔记 -- 1. 安装和验证
背景操作系统 : Windows 10 64位 专业版node 已经安装 (v.10.16.3)Java 已经安装 (jdk1.8.0_77)环境变量 JAVA_HOME 已经设置Android SDK 已经安装环境变量 ANDROID_HOME 已经设置安装步骤1. 安装 appium打开一个cmd窗口,使用如下命令安装appium:npm install -...
2020-01-13 14:05:16
2592
1
原创 Spring 任务调度核心概念模型
关于任务调度,Spring 有如下几个核心概念 :Task – 任务用于表示一个有待执行的任务;该任务有可能需要被执行一次;在特定的时间点执行一次;或者在某个时间点之后再延时特定的时间段之后执行一次;也有可能需要被反复执行多次;在特定时间点之后间隔特定的时间段重复执行;或者在 cron 表达式指定的运行时机重复执行;Spring不存在针对任务对应的接口/类抽象,S...
2019-12-04 16:41:19
545
原创 搭建以太坊私有链-单机2节点
本文使用二级制版本Geth在同一台机器上搭建两个节点的以太坊私有链。操作系统环境 :Windows 101. 下载和安装Geth二进制版本这里参考官方文档 Installation instructions for Windows1.1 下载Geth二进制版本下载来源 官方下载地址使用当前稳定版本 Geth 版本 : Geth – Elasa (v1.9.6)具体...
2019-11-01 15:24:13
4588
2
原创 基于Tomcat 的Spring MVC 应用中响应数据压缩原理分析
在一个基于Tomcat的Spring MVC应用中,当我们配置了参数server.compression.enabled=true时,我们会发现,服务端返回给浏览器的js格式的文件被压缩了。这背后的原理是什么呢?我们做个简单的分析。本文所分析的例子项目如下 :Spring Boot 2.1.9.RELEASESpring MVCServlet容器使用缺省的Tomcat文章目录1. W...
2019-10-22 17:54:19
1486
1
原创 Spring Security Web : AbstractAuthenticationTargetUrlRequestHandler
概述AbstractAuthenticationTargetUrlRequestHandler是Spring Security Web提供的一个抽象类,它抽象了这样一种策略的实现:认证动作成功时使用一个跳转策略跳转到指定的URL。该策略实现对应的具体实现方法是 : // AbstractAuthenticationTargetUrlRequestHandler 代码片段 prote...
2019-10-10 17:04:25
1170
原创 基于Kotlin的 Spring Boot JPA应用
Kotlin中使用JPA1. 简介2. 依赖3. 编译器插件(JPA插件)4. JPA和Kotlin数据类5. 总结本文翻译自 Working with Kotlin and JPA1. 简介Kotlin的一个重要特征就是跟Java库的互操作性,JPA就是一个这样的Java库。在这篇教程中,我们探索一下如何使用Kotlin数据类(Data Class)表示JPA实体(Entity)。2...
2019-09-30 11:08:25
2437
原创 Spring MVC : HandlerMappingIntrospector
概述这是一个Spring MVC助手类,用于集合应用所配置的HandlerMapping(url pattern和请求处理handler之间的映射)表,用于获取针对某个请求的如下信息 :getMatchableHandlerMapping(javax.servlet.http.HttpServletRequest)寻找能处理指定请求的HandlerMapping,如果找不到,返回null...
2019-09-19 15:39:58
2268
原创 Spring WebFlux 工作原理分析 - 2.应用启动过程--6.WebFlux 自动配置
概述WebFluxAutoConfiguration是Spring Boot关于Spring WebFlux运行时工作组件的自动配置类。通过WebFluxAutoConfiguration自身以及其引入的内嵌配置类,Spring Boot加载了相应的配置参数,将各个工作组件作为bean注册到容器,并将开发人员或者框架自身所提供的WebFluxConfigurer配置应用到各个工作组件上。其中核...
2019-09-19 11:33:48
2985
1
原创 Spring WebFlux 工作原理分析文章目录
Spring WebFlux 工作原理分析 - 1.准备例子项目Spring WebFlux 工作原理分析 - 2.应用启动过程–1.Web环境推断Spring WebFlux 工作原理分析 - 2.应用启动过程–2.创建应用上下文Spring WebFlux 工作原理分析 - 2.应用启动过程–3.更新应用上下文Spring WebFlux 工作原理分析 - 2.应用启动过程–4.创建...
2019-09-16 17:29:55
1011
原创 Spring WebFlux 工作原理分析 - 2.应用启动过程--5.启动Web服务器
在本系列的上一篇文章中,我们介绍了Reactive Web服务器NettyWebServer的创建,这一篇文章,我们讲解该Reactive Web服务器是如何启动的。它对应于AnnotationConfigReactiveWebServerApplicationContext基类ReactiveWebServerApplicationContext的方法startReactiveWebServe...
2019-09-16 17:22:20
1427
原创 Spring WebFlux 工作原理分析 - 2.应用启动过程--4.创建Web服务器
上篇文章我们分析了整个应用上下文的更新过程,但是,我们对AnnotationConfigReactiveWebServerApplicationContext应用上下文中的两个跟当前Web环境紧密相关的两个环节还不是很了解,它们分别是:onRefresh方法在缺省流程逻辑后扩展增加了创建Web服务器逻辑createWebServerfinishRefresh方法在缺省流程逻辑后扩展增加了启动...
2019-09-12 11:02:46
935
原创 Spring WebFlux 工作原理分析 - 2.应用启动过程--3.更新应用上下文
在该系列上一篇文章中,我们分析了应用上下文准备,创建和初始化的过程,这一篇文章我们来分析应用启动的最后一个主要步骤:SpringApplication#refreshContext,更新应用上下文:// SpringApplication 代码片段 private void refreshContext(ConfigurableApplicationContext context) { r...
2019-09-11 16:06:25
1052
原创 Spring WebFlux 工作原理分析 - 2.应用启动过程--2.创建应用上下文
在该系列上一篇文章中,我们分析了应用根据classpath存在的Web环境的特征类的存在性,判断出当前Web环境是WebApplicationType.REACTIVE。这一篇文章,我们主要来分析应用程序上下文ApplicationContext的创建,初始化和准备过程。这一过程,主要体现在类SpringApplication实例成员方法ConfigurableApplicationContext...
2019-09-10 17:47:54
1063
原创 Spring WebFlux 工作原理分析 - 2.应用启动过程--1.Web环境推断
1. main入口@SpringBootApplicationpublic class Application { public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); }}2. SpringAppl...
2019-09-10 15:14:23
1230
原创 Spring WebFlux 工作原理分析 - 1.准备例子项目
概述本系列文章用来分析Spring WebFlux的工作原理,这是第一篇,在这篇文章中,我们参考Spring官方文档构建一个例子项目,用于随后的原理分析。这里构建例子项目所参考的Spring文档是:Building a Reactive RESTful Web Service。该文档中提到了使用gradle,maven,IDE三种构架该项目的方式,这里我们采用了maven这种方式。该项目主要包...
2019-09-10 11:43:38
1550
原创 Docker 常用命令笔记
前提准备宿主机操作系统 Ubuntu 14.04(LTS)Docker version 18.06.3-ce, build d7080c1常用命令运行 Docker HelloWorld docker run ubuntu /bin/echo "Hello world"容器操作操作系统使用ubuntu在宿主机命令行终端执行以上命令,显示Hello world然后返回宿主机...
2019-09-05 17:56:20
481
原创 Spring MVC : 文件上传处理原理
1. 配置MultipartResolver用以解析上传文件数据开发人员或者框架通过某种方式定义bean MultipartResolver,Spring MVC需要使用它解析上传文件数据。比如对于一个Spring Boot + Spring MVC引用,Spring Boot的自动配置类MultipartAutoConfiguration会定义该组件:@Configuration@Cond...
2019-09-03 15:55:20
1096
原创 Spring MVC : ResourceUrlProviderExposingInterceptor
概述ResourceUrlProviderExposingInterceptor是Spring MVC的一个HandlerInterceptor,用于向请求添加一个属性,属性名称为ResourceUrlProvider.class.getName(),值是Spring MVC配置定义的一个资源URL提供者对象ResourceUrlProvider。缺省情况下,Spring MVC配置机制会主动...
2019-09-03 14:00:25
2761
原创 Spring MVC : ConversionServiceExposingInterceptor
概述ConversionServiceExposingInterceptor是Spring MVC的一个HandlerInterceptor,用于向请求添加一个属性,属性名称为ConversionService.class.getName(),值是Spring MVC配置定义的一个类型转换服务。该类型转换服务会在请求处理过程中用于请求参数或者返回值的类型转换。缺省情况下,Spring MVC配...
2019-09-03 13:42:31
2200
原创 Spring Boot 自动配置 : ConfigurationPropertiesAutoConfiguration
概述ConfigurationPropertiesAutoConfiguration是Spring Boot关于处理使用注解@ConfigurationProperties的bean组件的自动配置类。具体来讲,ConfigurationPropertiesAutoConfiguration引用了注解@EnableConfigurationProperties,而注解@EnableConfigu...
2019-09-02 11:11:37
1382
原创 Spring Web : 概念模型 HttpEntity
概述Spring Web使用类HttpEntity包装一个HTTP请求或者响应的以下内容 : 头部和消息体。概念上来讲,可以简单理解成这样 :1 HttpEntity = n headers + 1 body从具体实现上来讲,可以理解成这样 :1 HttpEntity = n HttpHeader(s) + 1 T – 这里 T 是泛型类型,指消息体的类型Spring Web针对请求和...
2019-09-02 10:11:50
3396
原创 Spring Web : FormHttpMessageConverter
概述FormHttpMessageConverter是Spring Web提供的用于读写一般HTML表单数据的HttpMessageConverter实现类,也可以写multipart数据,但是不能读取multipart数据。具体来讲,FormHttpMessageConverter 可以 :读写application/x-www-form-urlencoded媒体类型数据:MultiVa...
2019-08-30 17:19:20
2833
原创 Spring 工作原理分析 : 注解@Autowired
容器启动时实例化Spring BeanPostProcessor : AutowiredAnnotationBeanPostProcessor;AutowiredAnnotationBeanPostProcessor在容器实例化每个bean时扫描bean中使用注解@Autowired/@Value/@Inject的位置,执行相应的依赖注入;以上步骤关键点在于AutowiredAnnotat...
2019-08-30 14:21:31
515
原创 Spring Web : 注解@ExceptionHandler的工作原理
我们知道,Spring Web注解@ExceptionHandler可以用来指定处理某类异常的控制器方法,从而在这些异常发生时,会有相应的控制器方法来处理此类异常,其定义方式如下 : /** * 此方法定义一个异常处理器,仅仅处理异常 DemoException , 它使用一个视图对象 * DemoExceptionHandlerView 来处理异常 * ...
2019-08-30 11:40:53
4297
1
原创 Spring MVC : 概念模型 RequestToViewNameTranslator
概述这是Spring MVC定义的一个策略接口,它根据请求对象自身的属性解析出一个逻辑视图名称,通常用在没有针对请求明确指定视图的场景。RequestToViewNameTranslator被DispatcherServlet使用 : /** * Translate the supplied request into a default view name. * 尝试从请求本身...
2019-08-30 10:28:49
330
原创 Spring MVC : 原理解析 -- 控制器方法中的参数 ServletRequest 值从何而来 ?
我们知道,Spring MVC应用中,当通过如下方式定义一个控制器方法时,参数列表中的ServletRequest request无论放到哪个为止,在方法体内,它都能正确地代表当前请求对象,你有没有想过,这背后的原理是什么呢 ?@Controllerpublic class DemoController { @RequestMapping(value = "/") publ...
2019-08-29 17:36:29
635
原创 Spring Transaction : AnnotationTransactionAttributeSource
概述这是一个TransactionAttributeSource 接口的实现类,用于从类或者方法上事务注解分析相应的事务属性。它读取Spring的注解@Transactional,JTA 1.2+注解@Transactional(位于包javax.transaction),或者EJB 3的注解@TransactionAttribute(位于包javax.ejb),得到相应的事务属性给调用者使用。...
2019-08-29 16:54:01
1109
原创 Spring MVC : 控制器方法中获取当前请求对象的用法总结
1. 将请求对象作为当前控制器bean组件的属性注入,在控制器方法中可以操作请求对象 ;例子@Controllerpublic class DemoController { @Autowired ServletRequest request; @RequestMapping(value = "/") public String myControlle...
2019-08-28 17:44:58
1225
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人