基础框架SSM-----------spring篇

spring系统架构

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)!!!!!!!!

IOC(Inversion of Control)控制反转------解耦合


如图使我们所熟悉的基本逻辑,在业务层中调用Dao层的对象,但是当我们Dao层进行修改的时候业务层也就需要改动,然后项目就得全部重新部署发布,导致代码的耦合度高,所以我们不在业务层创建对象,转换为外部提供

所以引入了IoC控制反转的思想并且Spring实现了该思想


①IoC底层逻辑:把类的对象创建工作给IoC容器,然后只要获取IOC对象即可使用

第一步:导入Spring坐标

第二步:定义Spring管理的类

第三步:配置对应的类使其交给IoC容器管理对象的创建

第四步:获取容器对象,然后就可以使用getBean()方法注入bean对象并使用

②bean是如何创建出来的

第一种方法:调用无参的构造方法创建出来的

第二种方法:使用静态工厂实例化bean

第三种方法:使用实例工厂实例化bean

③bean的作用域

(1)++singleton++ --单例模式,使用 singleton 定义的 Bean 在 Spring 容器中++只有一个实例++,这也是 Bean 默认的作用域。

(2)++prototype++ --原型模式,每次通过 Spring 容器获取 prototype 定义的 Bean 时,容器都将++创建一个新的 Bean 实例。++

(3)request:在一次 HTTP 请求中,容器会返回该 Bean 的同一个实例。而对不同的 HTTP 请求,会返回不同的实例,该作用域仅在当前 HTTP Request 内有效。

(4)session:在一次 HTTP Session 中,容器会返回该 Bean 的同一个实例。而对不同的 HTTP 请求,会返回不同的实例,该作用域仅在当前 HTTP Session 内有效。

(5)global Session:在一个全局的 HTTP Session 中,容器会返回该 Bean 的同一个实例。该作用域仅在使用 portlet context 时有效。

④bean的生命周期-------从创建到销毁

⑤依赖注入

++setter注入++

setter注入引用类型

setter注入简单类型

++构造器注入++

构造器注入引用类型

构造器注入简单类型

至于依赖的自动装配和集合(List,array,map...)的注入这里就不做讲解

⑥数据源对象管理-----Druid

⑦容器

创建容器:

获取bean:

接口结构:

至此以上都是对Spring配置的原理过程的学习,而在实际开发中都不是使用上面的开发模式,而是接下来的注解开发(很重要!!)

注解开发(要求熟练掌握)

①使用注解定义bean@component(也可以分为@Controller @Service @Repositary)

②配置文件用注解类替代@Configuration

③使用注解依赖注入@Autowired

④第三方的Bean

两种方式的对比

AOP(Aspect Oriented Programming)面向切面编程------无侵入的功能增强

核心概念:代理模式

AOP的工作流程:

AOP的通知类型(主要掌握环绕通知):

这里分别是无返回和有返回值的写法:①都需要return 一个对象或者把原方法的return值再给他写回去②ProceedingJoinPoint对象是调用原始方法点即切入点

AOP获取参数:

相关推荐
半旧夜夏13 分钟前
【设计模式】核心设计模式实战
java·spring boot·设计模式
皮皮林55124 分钟前
SpringBoot 控制台秒变炫彩特效,秀翻同事指南!
spring boot
半旧夜夏1 小时前
【Spring】AOP的核心原理配方
java·spring
qiuiuiu4131 小时前
CPrimer Plus第十六章C预处理器和C库总结2-qsort函数
java·c语言·算法
IT学长编程1 小时前
计算机毕设选题 基于SpringBoot的书店管理系统的设计与实现 网上书店系统 前后端分离 Java毕设项目 毕业设计选题 【附源码+文档报告+安装调试】
java·spring boot·毕业设计·课程设计·前后端分离·网上书店系统·书店管理系统
张较瘦_1 小时前
应用型本科计算机类专业毕业设计与论文选题指南
java·开发语言·课程设计
IT学长编程1 小时前
计算机毕设选题 基于SpringBoot的房产租赁管理系统 房屋租赁系统 前后端分离 Java毕设项目 毕业设计选题 【附源码+文档报告+安装调试】
java·spring boot·毕业设计·课程设计·房屋租赁系统·房产租赁系统·文档报告
_OP_CHEN2 小时前
C++基础:(八)STL简介
开发语言·c++·面试·stl
李慕婉学姐2 小时前
【开题答辩过程】以《基于 Spring Boot 的宠物应急救援系统设计与实现》为例,不会开题答辩的可以进来看看
数据库·spring boot·宠物