SpringBoot-注解@Scheduled
参考文献
@Scheduled
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Repeatable(Schedules.class)public @interface Scheduled { String CRON_DISABLED = ScheduledTaskRegistrar.CRON_DISABLED; // 该参数接收一个cron表达式,cron表达式是一个字符串,字符串以5或6个空格隔开,分开共6或7个域,每一个域代表一个含义. /** * A cron-like expression, extending the usual UN*X definition to include trigger ...
Spring源码-阅读笔记
参考文献
Spring源码深度解析-郝佳
极客时间-Spring编程常见错误50例-傅健
环境说明
spring-framework 5.3x
Spring容器实现
DefaultListableBeanFactory
XmlBeanFeactory继承自DefaultListableBeanFactory,而DefaultListableBeanFactory是整个bean加载的核心部分,是Spring注册及加载bean的默认实现,而对于XmlBeanFeactory与DefaultListableBeanFactory不同的地方是在于XmlBeanFactory中使用了自定义的XML读取器XMLBeanDefinitionReader,实现了个性化的BeanDefinitionReader读取,DefaultListableBeanFactory继承了AbstractAutowireCapableBeanFactory并实现了ConfigurableListableBeanFactory以及BeanDefinitionRegistry接口.
类图中各个类的作用
...
SpringBoot-Yaml配置
参考文献
YAML格式
以空格的缩进程度来控制层级关系。空格的个数并不重要,只要左边空格对齐
则视为同一个层级。注意不能用 tab 代替空格。且大小写敏感。支持字面值,
对象,数组三种数据结构,也支持复合结构。
字面值:字符串,布尔类型,数值,日期。字符串默认不加引号,单引号会转
义特殊字符。日期格式支持 yyyy/MM/dd HH:mm:ss
对象:由键值对组成,形如 key:(空格)value 的数据组成。冒号后面的空格是
必须要有的,每组键值对占用一行,且缩进的程度要一致,也可以使用行内写
法: {k1: v1, ....kn: vn}
数组:由形如 -(空格)value 的数据组成。短横线后面的空格是必须要有的,每
组数据占用一行,且缩进的程度要一致,也可以使用行内写法: [1,2,...n]
复合结构:上面三种数据结构任意组合
示例
12345678910userinfo: age: 25 name: myjszl active: true created-date: 2018/03/31 16:54:30 map: {k1: v1 ...
SpringCloudAlibaba-基础
参考文献
SpringCloud Alibaba 从入门到精通
SpringCloud Alibaba
SpringCloud版本
SpringCloud Alibaba与SpringCloud
Spring Cloud 第一代
状态
SpringCloud Alibaba
状态
Eureka
2.0孵化失败
Nacos Discovery
性能强劲,感知更快
Ribbon
进入维护状态,新标准已经形成spring-cloud-loadbalancer
Hystrix/Hystrix Dashboard/Turbine
进入维护状态
Sentinel
可视化配置,上手更简单
Zuul
进入维护状态
Spring Cloud Gateway
性能是Zuul的1.6倍
Spring Cloud Config
搭建复杂,约定多,设计繁重,没有界面
Nacos Config
搭建简单,有可视化界面
SpringCloud Alibaba重要组件
服务发现以及配置管理Nacos
负载均衡Ribbon
声明式HTTP客户端Feign
服务容错Sentin ...
SpringMVC-过滤器,拦截器,监听器
参考文献
一口气说出 过滤器 和 拦截器 6个区别,别再傻傻分不清了
实习生:拦截器和过滤器有啥区别?
过滤器(Filter)
作用:过滤器是处于客户端和服务器资源文件之间的一道过滤网,帮助我们过滤掉一些不符合要求的请求,通常用作Session校验,判断用户权限,如果不符合设定条件,则会被拦截到特殊的地址或者基于特殊的响应。
过滤器的使用
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869package com.holelin.sundry.filter;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Component;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet ...
SpringBoot-日志切面
参考文献
又被逼着优化代码,这次我干掉了出入参 Log日志
注解
123456789101112131415161718192021222324252627282930package com.holelin.sundry.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * @Description: * @Author: HoleLin * @CreateDate: 2022/1/12 2:37 PM * @UpdateUser: HoleLin * @UpdateDate: 2022/1/12 2:37 PM * @UpdateRemark: 修改内容 * @Version: 1.0 */@Target( ...
SpringBoot-注解@ConfigurationProperties
参考文献
@ConfigurationProperties注意点
@ConfigurationProperties
@ConfigurationProperties 通过setter和构造器来设置field的值, 并且支持级联绑定属性
配置文件中的属性个数可以和POJO中的field个数不一样, 如果这样那么field就使用默认值或是初始值
要想使@ConfigurationProperties生效, 可以通过@Component, 或是在配置类上使用@EnableConfigurationProperties, 并且指定value来使properties文件的值自动注入到对应pojo的属性中(同时会将该POJO注入到IoC)
@ConfigurationProperties 不能与@EnableConfigurationProperties 一起标注在同一个类上
可以在@ConfigurationProperties标注的类上使用@Validated在来校验field的绑定
如果一个类标明了@ConfigurationProperties, 不会对内部类生效, 需要另外配置(因 ...
SpringBoot-文件上传与下载
参考文献
大文件上传下载实现思路,分片、断点续传代码实现,以及webUpload组件
FileUpload
Web Uploader
准备工作
前端
WebUploader
WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS 6+, android 4+。两套运行时,同样的调用方式,可供用户任意选用。
采用大文件分片并发上传,极大的提高了文件上传效率。
需要下载WebUploader包
后端
SpringBoot 2.5.6
123456789101112131415161718192021222324252627<properties> <java.version>1.8</java.version> <commons.fileupload.version>1.4</commons.fileupl ...
SpringBoot-Flyway父子项目配置
参考文献
Migrating multiple schemas with distinct life-cycle using Flyway and Spring Boot
背景说明
由于公司架构升级,需要把部分组件抽离出来重构,需要抽离出一个所有组件的父组件项目来统一管理其他组件公共的功能模块或者依赖等.父组件项目由于有些配置项需要灵活配置,故而将这些配置项放入数据库表中进行管理.所以这边采用Flyway框架来管理这些SQL.
但由于父组件和子组件都需要使用Flyway框架,因此对此进行调查研究一下.
环境说明
父子项目A和B,A为父项目,B为子项目.
父子项目都为SpringBoot项目.
JDK版本为11
SpringBoot版本如下所示:
123456<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> &l ...
SpringBoot,SpringFramework,SpringCloud版本映射关系
参考文献
springboot依赖springframework版本关系
SpringBoot与SpringCloud版本对应关系
https://start.spring.io/actuator/info
SpringBoot1.X与SpringFramework版本对应表
SpringBoot版本
依赖SpringFramework版本
发布时间
1.0.x
1.0.0.RELEASE
4.0.3.RELEASE
2014.04
1.0.1.RELEASE
4.0.3.RELEASE
2014.04
1.0.2.RELEASE
4.0.3.RELEASE
2014.04
1.1.x
1.1.0.RELEASE
4.0.5.RELEASE
2014.06
1.1.1.RELEASE
4.0.5.RELEASE
2014.06
1.1.2.RELEASE
4.0.5.RELEASE
2014.06
1.1.3.RELEASE
4.0.5.RELEASE
2014.06
1.1.4.RELEASE
4.0.6.REL ...