当前位置:首页 » 《休闲阅读》 » 正文

Spring框架梳理总结(适合多刷)_码农研究僧的博客

17 人参与  2022年02月14日 16:15  分类 : 《休闲阅读》  评论

点击全文阅读


目录

  • 前言
  • 1. 概念详解
    • 1.1 IOC与AOP
    • 1.2 IOC与DI
    • 1.3 接口区别
  • 2. 注入方式
    • 2.1 基本类型
    • 2.2 复杂类型
  • 3. 配置属性
  • 4. 注解注入
  • 5. AOP

前言

在看完上一篇文章每个知识点的时候
Spring框架从入门到学精(全)

大部分人对spring还是有些懵懂
可能是知识点比较凌乱所导致
以下这篇文章将带你二刷spring框架
本篇文章主要是理清思路逻辑,有个大纲
学习其细节还需要到上面的文章进行学习

1. 概念详解

1.1 IOC与AOP

主要的核心是IOC(控制反转)和AOP(动态代理)
而这两个核心也是面试的时候经常问的问题

  • IOC:控制反转,也就是控制权反转,传统的方式自个创建对象以及依赖关系等。反转之后,变成了可以由spring自行创建以及依赖关系的注入。总体来说就是反转对象创建方式,将创建的方式提交给spring也就是程序自已来执行。(以前都是自已去new,现在只需要告诉中介需求,中介给你送过来)

  • AOP:动态代理,实现代码增强的功能,而不会显得冗余复杂
    每个代码模块各司其职,灵活组合,达到一种可配置的、可插拔的程序结构

1.2 IOC与DI

上面讲解了IOC的主要概念,现在开始理清DI的概念区别
IOC的控制反转向spring中索取,也就是向中介管理索取
DI 正是实现 IoC 的方法和手段

一个重要特征是反射,它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,spring就是通过反射来实现注入

  • 注入方式: 1.set方式注入 2.构造方法注入 3.字段注入
  • 注入类型: 1.值类型注入 2.引用类型注入

1.3 接口区别

  • BeanFactory,Spring内部使用接口,不提供给开发人员,加载配置xml解析不会创建,只有创建对象才会getBean
  • ApplicationContext是BeanFactory子接口,功能强大,开发人员可使用,加载配置就会创建对象

ApplicationContext有一些特别的实现类

  • ClassPathXmlApplicationContext,在src目录下可以写文件名
  • FileSystemXmlApplicationContext,在src目录下,必须写绝对路径

在这里插入图片描述

2. 注入方式

2.1 基本类型

set方式注入
值类型用value注入
引用类型用ref注入
无参构造
在这里插入图片描述
有参数构造
constructor-arg是有参构造函数的属性
在这里插入图片描述
p名称空间注入
set注入,spring特有,为了简化<property>写法
引用名称空间p
xmlns:p="http://www.springframework.org/schema/p"
在这里插入图片描述
注入其他属性
在这里插入图片描述

2.2 复杂类型

数组注入
在这里插入图片描述

列表注入
在这里插入图片描述
set类型注入
在这里插入图片描述
map类型注入
在这里插入图片描述
注入对象属性
在这里插入图片描述
测试文件
以上读取的测试文件通过获取xml文件
在这里插入图片描述

3. 配置属性

其中主要通过bean来进行配置
具体各个属性概念大致如下

  • bean元素:spring容器管理对象
  • name属性:对象名字,获得对象时getBean(“name值”)
  • class属性:对象的完整类名
  • id属性:与name属性一样,但该id不可重复

spring中的配置属性具体概念如下
本身默认的时候是单实例
通过测试代码也可得知
在这里插入图片描述
所谓的单实例或者是多实例
主要通过配置bean标签内部的scope属性

  • singleton 单实例对象,默认是这个。加载spring配置的时候就会创建对象
  • prototype 多实例对象。调用getBean方法的时候就会创建对象。

还有一个属性是自动装配

bean标签属性autowire,配置自动装配
autowire属性常用两个值:
byName根据属性名称注入 ,注入值bean的id值和类属性名称一样
byType根据属性类型注入

在这里插入图片描述

bean生命周期
具体生命周期的步骤如下
从创建对象到对象销毁的过程

1.为构造器创建bean的实列(无参构造)
2.为bean的属性设置和对其他bean引用(调用set方法)
3.bean初始化配置
4.获取bean
5.销毁bean

4. 注解注入

创建对象提供注解
@Component: 游戏中普通的注解
@Service :业务逻辑层以及Service层
@Controller: 外部层
@Repository :dao层即持久层
功能是一样的,都可以用来创建对象,只不过把每个对象用在不同地方,以便查看

以上都要开启组件扫描
通过context的名称空间
在这里插入图片描述
而且可以通过该标签设置可过滤还是不可过滤的东西
在这里插入图片描述
通过值的注入
@Autowired:根据属性类型自动装配
@Qualifier(value=" "):根据属性名称自动注入
@Resource:可根据属性类型或者名称注入
@Value:注入普通类型的注入
在这里插入图片描述
基于注解类,没有了xml,那么就不是扫描xml文件
而是注解类的函数
主要用法如下
在这里插入图片描述

5. AOP

动态代理,也就是只增强代码部分

基本的概念

  • 连接点:类中有哪些方法可以被增强,这些方法称之为连接点
  • 切入点:实际被增强的方法
  • 通知(增强):实际增强的逻辑部分称之为通知(增强)
  • 通知有多种类型:前置通知、后置通知、环绕通知(前后执行)、异常通知(只有异常才会通知)、最终通知(类似finally)
  • 切面:把通知应用到切入点的过程,是一个动作的过程

主要通过代理类来实现代码增强的功能
两个最主要的类为
在这里插入图片描述

代码截图如下
在这里插入图片描述
在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/34752.html

注入  属性  对象  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1