沙滩de流沙
不积跬步,无以至千里!
既然选择了远方,就要风雨兼程!
展开
-
响应式编程将成主流?啥是响应式编程?
一、响应式编程解决什么问题?Spring framework 5 最大的变化就是引入了响应式编程(Reactive Programming)。Spring 为啥要引入这个特性?八个字:“逆水行舟,不进则废”!在2009 年,微软提出了响应式编程,旨在应对高并发服务器端开发场景。随后各语言很快跟进,都拥有了属于自己的响应式编程实现,比如Go、Node 等新语言。Java 作为服务器端开发语言老大的地位受到了不小的挑战,后有追兵,不得不进化啊。所以,响应式编程的初心,就是去满足高并发下的服务器端开.原创 2022-05-09 19:15:35 · 1734 阅读 · 0 评论 -
【一篇搞懂】 bean的生命周期详解
概述Spring中的一个Bean从生到灭要经历很多过程,总体分为Bean定义、实例化、属性赋值(依赖注入)、初始化、生存期、销毁几个阶段:下面是一个细化的Bean生命周期图:过程比较复杂,重点关注Bean的定义、初始化、销毁过程,可以抓住重点:BeanPostProcessor接口可以对Bean生命周期中的很多部分进行扩展,并且Spring容器中有很多内建的BeanPostProcessor对Spring Bean的功能进行支持。BeanPostProcessor不仅在IOC上原创 2021-06-30 23:40:35 · 11191 阅读 · 3 评论 -
@Bean注解修饰的bean是怎么注入spring容器的,@Configuration呢?
例如下面定义的bean:@EnableAspectJAutoProxy@Configurationpublic class AopOneConfig { @Bean public AopOne aopOne() { return new AopOne(); }}这里的aopOne这个bean是怎么注入spring的?我们去看源码是怎么处理的。一、调用链@Test public void test2() { Annotat.原创 2021-06-19 22:17:36 · 550 阅读 · 0 评论 -
如何引用 application.yml 或者 application.properties 之外的其它配置文件?
我们都知道 @Value 和 @ConfigurationProperties 获取默认配置文件的属性值,也就是application.yml或者application.properties的属性值。若想引用其它配置文件里的属性值怎么办呢?可以使用 @PropertySource + @ConfigurationProperties 去实现。一、 新建配置文件新建一个user.properties的配置文件:user.userName= rootuser.isAdmin= trueuse原创 2021-06-19 17:39:10 · 2379 阅读 · 0 评论 -
实现定时任务的 6 种方式,一网打尽!
实现定时任务有5种方式:使用线程创建定时任务使用 TimerTask 创建定时任务使用线程池创建定时任务使用 Quartz 框架实现定时任务使用 @Scheduled 注解实现定时任务xxl-job 实现分布式定时任务一、使用线程创建定时任务public class ThreadTask { public static class Demo01 { static long count = 0; public static void main原创 2021-06-18 21:01:32 · 13032 阅读 · 1 评论 -
Spring中的事件监听
事件和监听器来满足业务场景,比如在微服务中会有这样的场景:微服务 A 在处理完某个逻辑之后,需要通知微服务 B 去处理另一个逻辑,或者微服务 A 处理完某个逻辑之后,需要将数据同步到微服务 B。这种场景非常普遍,这时我们可以自定义事件以及监听器来监听,一旦监听到微服务 A 中的某事件发生,就去通知微服务 B 处理对应的逻辑。...原创 2021-06-08 22:20:27 · 1090 阅读 · 3 评论 -
【一篇搞懂】Sping 容器启动过程详解
一个Bean从生到灭要经历很多过程,总体分为定义、实例化、属性赋值(依赖注入)、初始化、生存期、销毁。如下图,是个概括图,后面重点介绍Bean的定义、初始化、销毁过程:图一下面是一个细化的Bean生命周期图:图二过程比较复杂,但是可以抓住重点:BeanPostProcessor接口可以对Bean生命周期中的很多部分进行扩展,并且Spring容器中有很多内建的BeanPostProcessor对Spring Bean的功能进行支持。BeanPostProcess..原创 2021-06-01 21:52:55 · 1262 阅读 · 1 评论 -
多环境配置原理及运行环境控制方式
多环境的配置就是根据环境标签去适配相应环境的配置参数,好处就是“一套代码,到处运行”,不用随环境改变去修改代码。虽然现在的springboot已经可以很好的支持多环境配置了,但是背后的原理还是要知道的。那大致的想下,怎么实现的呢?概括的说,其实很简单,就是那些配置类的bean是根据不同的环境标签动态去注入spring容器实现的。也就是说,根据环境标签,去注入和这个环境对应的配置类的bean到Spring容器。一、@Profilespring中使用@Profile注解去给bean添原创 2021-05-18 21:46:44 · 441 阅读 · 2 评论 -
属性值注入、bean的注入方式详解!
一、@Value使用@Value注解可以为属性注入相关的值,注入的方式有三种:注入静态值 SpEL表达式:#{} ${},获取配置文件中的值(或者运行环境中的值)@Datapublic class Person { private String name; private Integer age; private String sex;}/** * @Value 注解 * 1、注入静态值 * 2、SpEL表达式:#{} * 3、${},获取.原创 2021-05-18 20:59:32 · 785 阅读 · 1 评论 -
怎么获取spring容器?来,总结下!
很多时候我们需要获取spring容器,原创 2021-05-13 22:21:36 · 1659 阅读 · 0 评论 -
spring中怎么指定一个bean的初始化和销毁方法?一下子都搞懂!
spring中的bean的生命周期可以大致的分为:创建(构造)-->初始化-->销毁。bean的作用域不同,也会影响上面的过程,具体的:1、创建(构造)单例:在容器启动时就创建 多例:每次在获取时创建2、初始化两者无区别,都是在bean创建并赋值完毕后调用3、销毁单例:在容器关闭时销毁 多例:在创建这个bean后容器就不再管理它,由用户控制,容器不会调用它的销毁方法这里面的初始化方法和销毁方法我们都可以自定义指定及实现它们的逻辑,若我们在这个bean初始化或者原创 2021-05-12 23:36:20 · 892 阅读 · 1 评论 -
向spring容器中注入bean有哪些方式?大总结!
怎么把想要的bean(而要注入的bean包括自己项目中的、第三方的)注册到spring容器,让spring替我们管理这些bean呢?总结起来有四大方式。原创 2021-05-11 22:23:12 · 1300 阅读 · 2 评论 -
@ComponentScan配置老扫描不到Bean,这下彻底搞懂
一、@Configuration 和 @Bean在说@ComponentScan注解前,先来搞明白@Configuration 和 @Bean 这两个注解是干啥的。在没有注解驱动开发前,要想在spring中注入一个bean,是通过 .xml 文件来实现的:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan.原创 2021-05-07 23:34:57 · 5434 阅读 · 2 评论 -
自定义注解实现参数验证 —— @Constraint 注解
一、一般的参数校验怎么做的?我们知道在Post接受一个对象参数的时候可以使用 @Valid 去验证,然后通过统一异常处理,直接返回给前端,不用在业务代码中对这些参数进行校验。且约束的类型也有很多,比如:@Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue 被注释的元素必须为 true @AssertFalse 被注释的元素必须为 false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的..原创 2021-05-05 12:39:57 · 1594 阅读 · 0 评论 -
ES核心概念、基本操作及SpringBoot集成
ES全称ElasticSearch,是一种分布式全文检索引擎,用于全文搜索、分析。近乎实时的存储及检索效率,可以在上百台服务器上运行处理PB级数据的扩展性都让ES成为炙手可热的搜索引擎。除此外,ES通过简单的RESTful API屏蔽了Lucence的复杂语法,在使用上ES也变得简单易上手。一、ES核心概念1.1ES和普通关系型数据库的映射关系ES集群中可以包含多个索引(数据库),每个索引可以包含多个类型(表),每个文档(行)中又包含多个词(字段)。当然上面的映射也只是为了易于理解.原创 2021-02-06 11:27:08 · 866 阅读 · 0 评论 -
spring管理下事务总失效?事务不起作用场景 + 事务隔离策略
为什么要说事务?一方面业务开发中经常要考虑事务,比如调用第三方接口失败时处理本地数据状态是要考虑事务,结算时A账户增加失败时B账户也不能扣款成功。。。总之,在遇到原子性的操作,要成功都成功,要失败都失败的场景时,事务肯定是要考虑的!另一方面,“你有没有遇到事务失效的情况?” 或者 “哪些情况下事务会失效?”已经是面试时的高频问题,都爱问这个,我就被问过!这里学习整理下还是必要的,谁不想以后吊打面试官呢!一、事务失效的情况这里所有的例子都用下面这个更新操作演示: <u..原创 2020-12-20 19:29:34 · 720 阅读 · 0 评论 -
数据库表结构文档生成导出神器——Screw(螺丝钉)插件springboot集成实例
本文所有实例代码下载地址:https://github.com/ImOk520/myspringcloud一、说明Screw(螺丝钉)是一款简洁好用的数据库表结构文档生成工具,它的特点是:简洁、轻量、设计良好、多数据库支持、多种格式文档、灵活扩展以及支持自定义模板,对于有经常要进行数据库设计、评审、文档整理等需求的人来说就是福音~。Screw支持的数据库有:MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB...原创 2020-12-01 09:31:07 · 2084 阅读 · 2 评论 -
spring cloud 专辑(全面梳理、实际代码、常见问题总结)
一、什么是微服务?什么是微服务架构?“微服务”一词来源于 Martin Fowler 的《Microservices》一文。微服务是一种架构风格,即将单体应用划分为小型的服务单元,微服务之间使用 HTTP 的 API 进行资源访问与操作。微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。.原创 2020-10-26 22:57:47 · 757 阅读 · 1 评论 -
玩转 RestTemplate
一、RestTemplate 简介RestTemplate是Spring提供的用来访问Rest服务的客户端或者说是一个 HTTP 请求工具。这么说可能有些抽象,那就设想一下:现在有A、B两个服务,两个服务都注册在eureka中,那A服务要调用B服务怎么办?你可以使用Java 自带的 HttpUrlConnection 或者经典的网络访问框架 HttpClient 来实现。但是这些请求工具都是比较原生态的,在使用时开发者还要自己完成部分逻辑,使用起来比较复杂。Spring给我们提供了RestT.原创 2020-10-12 21:50:06 · 330 阅读 · 2 评论 -
Spring Boot 自动配置原理及自定义Starter
一、Spring Boot 是怎么完成自动配置的?初识Spring Boot时我们就知道,Spring Boot有一个全局配置文件:application.properties或application.yml。这些配置是如何在Spring Boot项目中生效的呢?Spring Boot关于自动配置的源码在spring-boot-autoconfigure-x.x.x.x.jar中:自动配置始于Spring Boot的核心注解:@SpringBootApplication,它在主函数所在的..原创 2020-07-27 22:55:54 · 905 阅读 · 0 评论 -
Spring MVC调度流程
一、Spring MVC的由来在最早期WEB系统有前端到后端是:请求+JSP+Java Bean + 数据库的模式,这种JSP和Java Bean前后端耦合在一起会带来很多麻烦。后来被Serverlet+JSP+Java Bean+数据库 的模式取代,多了一个Serverlet组件,用户的请求先到Serverlet,Serverlet相当于一个控制器,它来调度Java Bean以及读取数据库,最后把结果放到JSP进行展示。这时Serverlet就是Controller,Java Bean就是..原创 2020-07-01 22:50:03 · 443 阅读 · 0 评论 -
Redis 相关知识点(持续更新)
一、什么是NoSQL要介绍Redis前必须要先介绍下NoSQL,这两者间密不可分。什么是NoSQL?NoSQL即(not only SQL)不仅仅是SQL,泛指非关系数据库。非关系数据库在高并发的场景下有巨大优势,这点MySQL等关系型数据库是无法相比的。另外NoSQL在数据分析数据挖掘也更胜一筹。...原创 2020-06-07 23:01:42 · 480 阅读 · 0 评论 -
Spring知识点梳理,简单易懂
一、What is the Spring?Spring框架是由于软件开发的复杂性而创建的,换句话说:Spring是为简化软件开发而存在的。Spring主要的作用可以概况为:简化开发,最大程度的松耦合。...原创 2020-02-21 22:35:47 · 549 阅读 · 0 评论