Spring源码
文章平均质量分 62
允文
喜爱编码
展开
-
2021-10-28
Spring Boot 启动文章目录Spring Boot 启动前言一、入口程序二、注解@SpringBootApplication总结前言@SpringBootApplication 注解是 Spring Boot 最核心、最基础的注解。加在类上,表示这个类是一个配置类,该类声明一个或多个 @Bean 方法,并且还触发自动配置和组件扫描。等效于@Configuration @EnableAutoConfiguration 和 @ComponentScan 三个注解。一、入口程序@Sprin原创 2021-10-28 15:52:49 · 67 阅读 · 0 评论 -
2021-10-16
Spring 状态机(二)文章目录前言实现总结前言状态机能够实现状态的跳转,这种运用场景在实际中十分频繁地出现,在我们的经常使用的app中,几乎都有注册,注销功能,如果利用平时的转换逻辑其实也能够实现目标,但是作为新时代程序员必须尝试一下状态机。实现总结1.状态:首先注册模块我们已经相当熟悉,应该有4个状态:未连接、已连接、注册中、已注册。我们的目的就是实现这些逻辑合乎逻辑的流转。public enum RegStatusEnum { // 未连接UNCONNECTED,// 已连接原创 2021-10-16 22:08:24 · 89 阅读 · 0 评论 -
2021-10-15
设计模式之观察者模式文章目录设计模式之观察者模式前言观察者模式结构实战总结前言观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。目标与观察者之间建立了一套触发机制,这个机制可以是发布-订阅机制,当目标更新了状态,也可以理解目标发布了新的状态消息,然后观察者订阅了目标状态变化,这是一种通知机制,那么依赖于目标的观察者都能够根据目标状态变化,更原创 2021-10-15 14:32:52 · 65 阅读 · 0 评论 -
2021-10-15
代理模式和适配器模式的区别文章目录代理模式和适配器模式的区别前言一、代理模式是什么?二、动态代理1.JDK动态代理总结前言上次我们讲到了适配器模式,适配器模式实现目标接口,我们的适配者类想要实现目标接口中的目标方法,我们不是直接调用目标接口中的方法,这样适配者和目标接口会直接存在耦合,现在我们通过适配器,适配器实现了目标接口,而且能够生成适配者对象,适配器能,适配者对象就能实现目标方法。那么代理模式呢?我们了解到适配器模式底层调用了拦截器,就能够通过拦截进行匹配,那么拦截器的底层又是动态代理,所以说原创 2021-10-15 10:44:50 · 64 阅读 · 0 评论 -
2021-10-15
Java三大器文章目录Java三大器前言三大器是如何实现的?总结前言java三大器分别是过滤器,拦截器和监视器,顾名思义:过滤器是用来过滤的,能够为我们提供系统级别的过滤,也就是说,能过滤所有的web请求,非法url,非法字符。filter 流程是线性的,url传来之后,检查之后,可保持原来的流程继续向下执行,被下一个filter, servlet接收。监听器也是系统级别的监听。监听器随web应用的启动而启动。Java的监听器在c/s模式里面经常用到,它会对特定的事件产生产生一个处理。监听在很多原创 2021-10-15 09:50:38 · 80 阅读 · 0 评论 -
2021-10-14
设计模式之适配器模式文章目录设计模式之适配器模式前言一、适配器是什么?二、使用步骤1.适配器2.案例前言适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。提示:以下是本篇文章正文内容,下面案例可供参考一、适配器是什么?想了解适配器是什么,要了解适配器的组成,适原创 2021-10-14 21:44:24 · 166 阅读 · 0 评论 -
2021-10-14
设计模式之单例模式文章目录设计模式之单例模式前言一、单例模式的优点和缺点是什么?二、单例模式实现1.懒汉式2.饿汉式总结前言单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。当然了,缺点也很明显,多线程访问单例,如果没有加锁等操作,那是会产生并发问题的,所以单例模式下,线程安全是要通过加锁等手段保证的。在计算机原创 2021-10-14 17:44:58 · 54 阅读 · 0 评论 -
2021-10-12
Spring Boot项目打包、发布与部署文章目录Spring Boot项目打包、发布与部署前言一、项目打包。二、运行部署总结前言Spring Boot使用了内嵌容器,因此它的部署方式也变得非常简单灵活,一方面可以将Spring Boot项目打包成独立的jar或者war包来运行,也可以单独打包成war包部署到Tomcat容器中运行,jar包:通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置。内置tomcat没有自己的原创 2021-10-12 19:57:47 · 91 阅读 · 0 评论 -
2021-10-11
spring data redis(一):基本内容文章目录spring data redis(一):基本内容前言一、Redis数据内存二、使用案例1.配置pom.xml和application.properties2.创建实体类和配置类测试总结前言Redis是一个基于内存的键(key)值(value) 类型的数据结构存储容器,因为数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向。所以当某些不专业的面试官问你,你为什么不使用本地内存进行存储时,你可以很自豪地回答他,Red原创 2021-10-11 14:53:57 · 66 阅读 · 0 评论 -
2021-10-11
Spring Data JPA(四):Query注解从学习到测试文章目录Spring Data JPA(四):Query注解从学习到测试前言一、源码分析二、案例流程1.完成pom.xml、application.properties中配置2.创建实体类3.查询实现测试前言前面的章节讲述了 Spring Data JPA一些基本的操作,尤其是Query注解的一些语法操作,相对而言上手速度快且简单易操作。JPA实现查询操作就是通过将 @Query 注解在继承 repository 的接口类方法上 。今天原创 2021-10-11 09:56:13 · 114 阅读 · 0 评论 -
2021-10-10
Spring Data JPA(三):JPA数据查询操作文章目录Spring Data JPA(三):JPA数据查询操作前言案例前言我们使用JPA最关注的就是查询能力,我来分享查询的操作。案例1.使用jpql的形式查询,配置jpql语句,使用的@Query注解@Query(value="from table where 字段 = ...") public ... findJpql(String 字段);2.配置sql查询(推荐) @Query(value="select * f原创 2021-10-10 22:23:08 · 53 阅读 · 0 评论 -
2021-10-10
Spring Data JPA(二):常用方法和注解文章目录Spring Data JPA(二):常用方法和注解前言一、Spring Data JPA的常用方法二、常用注解前言前文已经分析了Spring Data JPA的适用性以及操作的便宜性,我们再来分析Spring Data JPA的常用方法和注解。一、Spring Data JPA的常用方法1.persist():将临时状态的对象保存进数据库。这个操作其实就是插入了一条新数据。entityManager.persist(modelO原创 2021-10-10 22:06:49 · 94 阅读 · 0 评论 -
2021-10-09
Spring Data JPA 的应用文章目录Spring Data JPA 的应用前言一、Spring Data JPA二、案例总结前言前面讲解了JPA相关的基础知识,让我们明白了JPA在数据层上添加注解,从而实现了自动生成的功能。我们今天看一下Spring封装的JPA—Spring Data JPA ,在下面的网址上可以找到相关的文档。spring.io一、Spring Data JPASpring Data JPA 是应用于Dao层的一个框架,简化数据库开发的,作用和MyBatis框原创 2021-10-10 20:12:44 · 66 阅读 · 0 评论 -
2021-10-09
Spring状态机的方法详解文章目录Spring状态机的方法详解前言一、类似于链式编程结构分析二、状态机拦截器三、常见方法总结总结前言Spring状态机的作为一套系统,当我们了解到基本概念和电商平台的实例后,我们更需要关注底层的规律,方法,从而丰富我们的知识,其实一切程序最终都归于底层研究,我们要了解每一个方法的使用和出处。这样在具体项目中,我们才能将具体的业务重写。一、类似于链式编程结构分析案例一:@Override public void configure(StateMachineT原创 2021-10-09 10:55:01 · 116 阅读 · 0 评论 -
2021-10-08
使用Spring状态机实现订单状态流转文章目录使用Spring状态机实现订单状态流转前言一、什么是电商订单状态流转?二、准备知识1.简化配置2.状态配置3. 配置转换案例前言状态机是状态模式的一种应用,相当于上下文角色的一个升级版。在工作流或游戏等各种系统中有大量使用,如各种工作流引擎,它几乎是状态机的子集和实现,封装状态的变化规则。状态机可以帮助开发者简化状态控制的开发过程,让状态机结构更加层次化。Spring 提供了一个很好的解决方案,Spring Statemachine(状态机)是应用程序开原创 2021-10-08 20:16:52 · 561 阅读 · 0 评论 -
2021-10-08
SSM—Spring State Machine 状态机文章目录SSM---Spring State Machine 状态机前言支持模块前言Spring 状态机(SSM) 是一个框架,允许应用程序开发人员使用传统的状态机器概念与Spring应用程序。SSM 提供以下功能:易于使用的平机(一级)状态机,用于简单使用的情况下。分层状态机器结构,以缓解复杂的状态配置。状态机器区域提供更复杂的状态配置。使用触发器、过渡、守卫和操作。类型安全配置适配器。状态机器事件监听。集成Spring IO原创 2021-10-08 18:01:50 · 71 阅读 · 0 评论 -
2021-09-29
Spring基于注解实现事务管理文章目录前言案例前言在 Spring 中,声明式事务除了可以使用 XML 实现外,还可以使用 Annotation 注解。使用注解实现可以减少代码之间的耦合度。使用 Annotation 的方式非常简单,只需要在项目中做两件事,具体如下:1)在 Spring 容器中注册驱动,代码如下所示:<tx:annotation-driven transaction-manager=“txManager”/>2)在需要使用事务的业务类或者方法中添加注解 @Tr原创 2021-09-29 21:32:47 · 59 阅读 · 0 评论 -
2021-09-29
Spring编程式事务管理文章目录前言案例前言编程式事务管理是通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚。Spring 出现以前,编程式事务管理是基于 POJO 应用的唯一选择。在 Hibernate 中,我们需要在代码中显式调用 beginTransaction()、commit()、rollback() 等事务管理相关的方法,这就是编程式事务管理。而通过 Spring 提供的事务管理 API,我们可以在代码中灵活控制事务的执行。案例1.创建U原创 2021-09-29 20:59:45 · 67 阅读 · 0 评论 -
2021-09-29
Spring集成Log4J文章目录前言案例前言日志是应用软件中不可缺少的部分,Apache 的开源项目 Log4J 是一个功能强大的日志组件。在 Spring 中使用 Log4J 是非常容易的,下面通过例子演示 Log4J 和 Spring 的集成。案例1.创建HelloWorld 类package net.huo;public class HelloWorld { private String message; public void setMessage(String原创 2021-09-29 20:20:49 · 63 阅读 · 0 评论 -
2021-09-29
Spring基于注解装配Bean文章目录前言一、Spring 中常用Bean注解案例前言在 Spring 中,尽管可以使用 XML 配置文件实现 Bean 的装配工作,但如果应用中 Bean 的数量较多,会导致 XML 配置文件过于臃肿,从而给维护和升级带来一定的困难。Java 从 JDK 5.0 以后,提供了 Annotation(注解)功能,Spring 2.5 版本开始也提供了对 Annotation 技术的全面支持,我们可以使用注解来配置依赖注入。Spring 默认不使用注解装配 Bean原创 2021-09-29 19:27:40 · 60 阅读 · 0 评论 -
2021-09-29
Spring----BeanPostProcessor(后置处理器)文章目录前言一、BeanPostProcessor源码案例前言BeanPostProcessor 接口也被称为后置处理器,通过该接口可以自定义调用初始化前后执行的操作方法。一、BeanPostProcessor源码public interface BeanPostProcessor { Object postProcessBeforeInitialization(Object bean, String beanName原创 2021-09-29 19:00:52 · 55 阅读 · 0 评论 -
2021-09-29
Spring Bean详解(二)文章目录前言一、初始化回调二、销毁回调案例前言Spring 生命周期的意义就在于,可以利用 Bean 在其存活期间的指定时刻完成一些相关操作。一般情况下,会在 Bean 被初始化后和被销毁前执行一些相关操作。Spring 官方提供了 3 种方法实现初始化回调和销毁回调:实现 InitializingBean 和 DisposableBean 接口;在 XML 中配置 init-method 和 destory-method;使用 @PostConstruct原创 2021-09-29 18:43:23 · 55 阅读 · 0 评论 -
2021-09-29
Spring Bean详解(一)文章目录前言一、bean属性![在这里插入图片描述](https://img-blog.csdnimg.cn/a9f92476216e4790b5144ca9e46f9b47.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5YWB5paH,size_20,color_FFFFFF,t_70,g_se,x_16)二、bean作用域三、bean生命周期原创 2021-09-29 16:00:37 · 103 阅读 · 0 评论 -
2021-09-28
Spring AOP(二)----基于XML的AOP样式文章目录前言一、声明一个切面二、声明一个切入点三、声明通知案例前言在基于XML样式的 Spring 配置中,所有切面和通知元素都必须放置在一个aop:config元素中(您可以aop:config在一个应用程序上下文配置中拥有多个元素)。一个aop:config元素可以包含切入点、通知和切面元素(请注意,必须按该顺序声明这些元素)。提示:以下是本篇文章正文内容,下面案例可供参考一、声明一个切面当使用该样式时,切面是在 Spring 应原创 2021-09-28 23:55:53 · 86 阅读 · 0 评论 -
2021-09-28
Spring重要模块----AOP详解(一)文章目录前言一、AOP 概念二、增强密码-通知Advice三、AOP 代理区别四、AOP 代理---@AspectJ 支持前言面向切面编程 (AOP) 通过提供另一种思考程序结构的方式来补充面向对象编程 (OOP)。OOP 中模块化的关键单位是类,而 AOP 中模块化的单位是方面。方面能够实现跨越多种类型和对象的关注点(例如事务管理)的模块化。Spring 的关键组件之一是 AOP 框架。虽然 Spring IoC 容器不依赖于 AOP,但 AOP 补充原创 2021-09-28 18:20:52 · 121 阅读 · 0 评论 -
2021-10-08
Spring源码系列(一):WebMvcConfigurer@[TOC](文章目录)前言WebMvcConfigurer是一个接口,提供很多自定义的拦截器,例如跨域设置、类型转化器等等。可以说此接口为开发者提前想到了很多拦截层面的需求。接口方法解读1.configurePathMatch(PathMatchConfigurer configurer)这个是和访问路径匹配有关的。举个例子,比如说PathMatchConfigurer 有个配置是setUseTrailingSlashMatch(原创 2021-10-08 10:59:22 · 269 阅读 · 0 评论