SpringIOC学习笔记

编程入门 行业动态 更新时间:2024-10-25 06:32:12

SpringIOC<a href=https://www.elefans.com/category/jswz/34/1770117.html style=学习笔记"/>

SpringIOC学习笔记

SpringIOC学习笔记

  • 前言
  • 一:MVC三层架构
  • 二:IOC理论指导
  • 三:写一个程序
  • 四:创建对象的方式+Spring配置(别名+导入)
  • 五:依赖注入+④Bean作用域
  • 六:自动匹配:对实体类中的成员变量(其他类)进行自动装配-无注解版
  • 七:自动装配:注解版
  • 八:通过JavaConfig配置(不使用XML)
  • 知识复习图

前言

这是基于B站大佬 狂神说,然后写的学习笔记。

一:MVC三层架构

V(View):视图层 ->JSP
C(Controller):控制层 ->Servlet
M(Model):模型层(操作数据) ->JavaBean实体类 JDBC (Service+Dao)

为了维护方便,Servlet的部分功能拆给了Service(login layout 查询全部用户)
Dao(CRUD)

二:IOC理论指导

①Dao接口 ②Dao接口实现类UseDao


③Service接口 ④Service接口实现类UseService


⑤测试类

结果:

发现:如果用户不想用这个这个Dao层接口实现类,想要用其他的Dao层接口实现类需要改④中的图所示的地方,若是一直改来改去 会发现特别特别的麻烦
改进方案:利用set接口实现动态输入方式

这种思想从本质上解决问题,程序不再主动管主动对象,而是被动的接受对象。大大降低系统的耦合性,可以更加专注在业务上,这就是IOC的原型!!!!!(也就是利用set方法)!!

IOC控制反转是一个设计思想,DI(依赖注入)是实现IOC的一种方法

对于面向对象编程,对象创建由程序自己控制,经过控制反转后,
将对象创建转移给第三方,也就是获取依赖对象方法反转了。

对于IOC方式:xml配置(xml方法配置Bean) ->定义和实现分离
+注解 ->定义和实现一体
+零配置(Bean定义,注解形式定义在实现类中)

控制反转是通过描述(XMl配置和注解)并且通过第三方(用户)去生产或获取特定对象的方式。
在Spring实现控制反转的是IOC容器,其实现方式是DI(依赖注入)

三:写一个程序

一:编写实体类
二:编写Spring容器文件,命名为beans.xml

三.测试
对于IOC理论的例子 进行改进:
多加了编写Spring配置文件
测试类
能得到同样的结果

四:创建对象的方式+Spring配置(别名+导入)

一:一般来说默认是无参构造创建对象
二:使用有参构造创建对象(构造器注入),下面将有三种方式 使用实体类中的有参构造方法
①.实体类
②.Spring配置文件
③测试

三:Spring配置(别名+导入)
别名:
导入:

五:依赖注入+④Bean作用域

注入->①构造器(即有参创建对象方式)+②set方法+③扩展方法
-> Constructor Property Constructor(C命名)+Property(P命名)
①构造器注入(Constructor)
②set方法注入(Property)
例子:1.Class Address
Class Student(Set Get toString就不截图了)
}

2.Spring配置文件beans.xml

3.测试
4.结果

③扩展方法方法(PropertyP空间+ConstructorC空间)
1.实体类

2.beans.xml
3.测试
4.结果
④bean作用域

六:自动匹配:对实体类中的成员变量(其他类)进行自动装配-无注解版

1.Cat 类
Dog类
People类
2.Spring配置文件 beans.xml和beans2.xml分别对应两种自动匹配autowired

3.测试类
ByName是需要匹配bean的id,所以要保证id要唯一
例如:Dog对应bean id必须为dog
ByType 是需要匹配bean的class,所以要保证class唯一 也就是如果有两个bean用的同一个class,例如:

也就是不止一个的时候,无法判断出要自动匹配导致无法自动匹配、

七:自动装配:注解版

Cat类
Dog类
1.@Autowired [set get方法可以不写,但是配置文件的Bean是必须要写的]
①ByType(默认)
People类
Spring配置文件
测试类结果
②ByName 则需要借助@Qualifier(value=”bean的id”)
People类
Spring配置文件
测试和结果 同上
2.@Resource 对于这个需要导入一个依赖
ByName(默认),若是ByName找不到,则会找到ByType实现
People类
Spring配置文件
测试
结果
3. .@Nullable,可以说明这个字段可以为null
4. 结论@Autowried和@Resource的set方法可以不写
[set get方法可以不写,但是配置文件的Bean是必须要写的]

使用注解开发:可以取代XML中bean对象的创建和其属性的注入
首先要理清楚一点:@Autowried和@Ressource是取代其他类在该类的引用的注入
下面将见识到如何使用如何取代XML中还有的bean对象创建和其属性的注入
@Component @Value 还有@Scope

Cat类-@Component(默认是类名-首字母小写) 也就是cat
Dog类
People类
Spring配置文件
测试
结果

知识补充:衍生注解业务层 Dao层 @Repository
Service层 @Service
Controlled层 @Controller
这三个注解 跟@Component作用是一样的
而@Component一般是用于普通pojo(实体类)的使用

结论:最佳用途XML用来管理Bean 而注解只完成属性的注入
XML维护方便,万能 写起来复杂
注解维护困难,不是自己类不能用 写起来简单

八:通过JavaConfig配置(不使用XML)

1.pojo实体类
2.JavaConfig类
3.测试类

知识复习图

更多推荐

SpringIOC学习笔记

本文发布于:2024-02-26 19:55:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1703705.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学习笔记   SpringIOC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!