spring5系列教程
文章平均质量分 89
spring5系列教程。从头开始学习spring
一缕82年的清风
这个作者很懒,什么都没留下…
展开
-
Spring5系列(十一) | 基于注解的AOP编程
概述: 本篇文章很重要! 工作中我们经常会遇到给我们的项目写一个切面,很多开发工程师刚开始的时候都不知道切面应该怎么写,本篇文章就会教大家如何开发一个切面。我们前面讲解了Spring的AOP编程,本质就是给spring的对象通过创建代理对象的方式添加额外功能。我们前面的方式都是通过在xml配置的方式实现的。我们简单回顾一下之前的步骤。原始对象 额外功能 切入点 组装一、 开发步骤1. 额外功能:之前写法 public class MyArround implements M原创 2021-04-20 17:20:55 · 366 阅读 · 0 评论 -
Spring5系列(十) | 动态代理底层实现
我们在上面的几篇文章中已经了解了如何使用spring进行aop的开发,本篇文章我们来介绍一下动态代理的底层实现。一. AOP编程概念AOP: Aspect oriented programming: 面向切面编程 = spring动态代理开发。以切面为基本单位的程序开发,通过切面间的批次协同,相互调用,完成程序构建。 切面 = 切入点 + 额外功能OOP: Object Oriented Programming: 面向对象编程,以对象为基本单位的程序开发,通过过程间的批次协同,相互调用,完成原创 2021-04-19 11:04:23 · 320 阅读 · 0 评论 -
Spring5系列(九) | spring动态代理详解
上篇文章中,我们了解了Spring动态代理的实现和一些细节,但其实主要都是讲的如何使用。今天我们更深一步,简单说说里边的一些实现原理,和切入点表达式的一些其他写法。一. 回顾动态代理开发的四个步骤目标对象 额外功能 切入点 组装目标对象不用说了,其实一般就是我们自己写的一个业务上的接口和实现。我们今天重点说说剩下的三个步骤。关于额外功能,我们上篇文章中的额外功能,是通过实现了MethodBeforeAdvice接口来实现的,那么我们先来说说额外功能。二. 额外功能详解我们上篇文章原创 2021-04-13 09:07:57 · 324 阅读 · 0 评论 -
Spring5系列(八) | 静态代理和spring动态代理
从本篇文章开始我们就要开始研究spring的第二大特性AOP了,也就是面向切面编程。 在java开发过程中,我们把我们具体要实现的业务方法,可以称之为核心功能,比如注册,登陆,增删改查等,而除了额外功能以外,往往我们还需要一下额外功能。什么是额外功能呢,他们本身不属于业务系统,可有可无,代码量小,如事务,日志和性能分析等。那么我们在开发的时候,最好不要把这些额外功能和核心功能的代码写到一起,这样不利于维护。所以我们引入了代理模式。一. 代理模式代理模式是设计模式的一种,主要解决的问题就是以一原创 2021-04-12 10:00:36 · 216 阅读 · 0 评论 -
Spring5系列(七) | spring对象的生命周期(全是干货不要错过)
本篇文章,我们再来研究一下一道高频的面试题,就是spring所管理对象的生命周期。一. 传统类的生命周期在传统的java应用中,bean的生命周期很简单。使用Java关键字new进行bean的实例化,然后该bean就可以使用了。一旦bean不再被使用,则有java的垃圾回收器自动进行垃圾回收。二. spring控制的对象的生命周期相比之下,spring容器中的bean的生命周期就显得相对复杂多了。我们为什么要学习对象的生命周期呢,因为有了spring之后,现在都是由spring来控制对象的创原创 2021-04-08 09:10:17 · 3192 阅读 · 0 评论 -
Spring5系列(六) | Controller到底线程安全么
本篇文章比较简单,主要介绍下关于对象的scope, 其实一直有一道比较经典的面试题,问的是springMVC中的Controller是单例的么?我们就从这道题来引申出来。我们在学习java基础的时候,都会学到一种设计模式,叫做单例设计模式。什么叫做单例设计模式呢,就是要保证我们创建出来的对象永远只有一个。为什么要这样呢,主要目的就是为了合理的利用内存。有些比较重量级的对象其实创建一次就可以了,那么我们就可以使用单例设计模式。什么样的情况不能使用单例呢,那就是存在线程安全的问题的类,或者说存在共享资源可能原创 2021-04-01 10:11:53 · 719 阅读 · 0 评论 -
Spring5系列(五) | 聊聊FactoryBean
通过前几篇的文章,我们已经可以通过spring进行对象的创建及赋值。通过这样的方式,我们已经可以我们自己创建的类交给spring容器进行管理。spring可以帮我们创建对象,并且我们也分析了,spring帮我们创建对象的方式,就是通过反射调用构造方法实现的。那么问题来了,如果有一些类我们不能通过构造方法的方式创建对象该怎么办呢?或者说,如果有一些对象已经存在了,我不希望spring帮我创建了,但是它通过他的容器进行管理,应该怎么办呢? 这个问题问的有点抽象了,可能乍一听,很难理解。那么我们接下来举例来研究一原创 2021-03-31 14:27:53 · 383 阅读 · 0 评论 -
Spring5系列(四) | 依赖注入
上篇文章我们讲解了如何通过spring的工厂创建对象。对象有了,但是其实往往我们也不能够直接进行使用,有时候需要对对象进行赋值的操作。而spring中有一个比较重要的概念叫做依赖注入,什么是依赖注入的,其实就是对于成员变量的赋值。那么我们就来了解下spring如何完成依赖注入。一. 传统方式的注入-对象赋值我们传统的方式是如何完成赋值的呢,一般有三种方式。我们还是以User类为例public class User{ private Integer id; private Stri原创 2021-03-31 09:17:45 · 332 阅读 · 0 评论 -
Spring5系列(三) | 初识spring
经过了前面几篇文章的铺垫,从本章开始我们正式进入spring的学习。我们提到过spring的两大核心思想分别是IOC和AOP, 且spring和核心目的就是简化我们的开发和解耦合。 而简化我们开发的核心就是spring的工厂,spring提供了一个工厂,可以帮我我们完成对象的创建和实例化以及依赖注入的过程,那么我们本篇文章就来介绍下,spring工厂是如何帮我们管理类的。一.spring的工厂和应用上下文在基于spring的应用各种,你的应用对象生存于spring容器(container)中。sp原创 2021-03-30 09:40:21 · 180 阅读 · 0 评论 -
Spring5系列(二) | 工厂设计模式
spring中大量使用的工厂设计模式,所以我们这个章节先简单的了解下工厂设计模式的内容。工厂设计模式属于创建型模式中的一种。在GOF中的定义:“Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.”(在基类中定义创建对象的一个接口,让原创 2021-03-30 09:34:31 · 253 阅读 · 0 评论 -
Spring5系列(一) | 重新认识下spring
Spring - 这应该是java程序员不可逾越的一座大山,无论在开发或者面试中都无法绕过去的坎,毫不夸张的说,spring目前已经占据了java领域的半壁江山,甚至更多,而目前spring也已经更新到了5.x的版本。同时,随着springboot, springcloud等一系列微服务框架的诞生,spring也变得越来越流行,越来越广泛,越来越简便。 但简便的同时,其实是对底层大部分功能的封装,而如果我们不能很好的理解spring的基础用法,等到后面使用springboot,springCloud等进行大原创 2021-03-30 09:29:41 · 525 阅读 · 1 评论