两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架,在学习过程中我将视频中涉及的代码都一行一行手敲了一遍,并且把Spring入门相关的资料整理了一下,在这里记录一下我在Spring框架学习过程中的笔记和一些心得,希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦!
视频地址:2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通
文章目录
1. IoC 简介
控制反转(IoC,Inversion of Control),是一种设计思想,而不是一个具体的技术实现。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对 对象控制权 的转移,从程序代码本身反转到了外部容器。通过容器实现对象的创建、属性赋值、依赖的管理。
不过, IoC 并非 Spirng 特有,在其他语言中也有应用。
控制:指的是对象创建(实例化、管理)的权力
反转:把原来的开发人员管理、创建对象的权限转移给代码之外的容器实现。由容器代替开发人员管理对象、创建对象、给属性赋值。
正转:由开发人员在代码中使用 new 构造方法创建对象,开发人员主动管理对象。
public static void main(String args[]){
Student student = new Student(); // 在代码中, 创建对象。--正转。
}
容器:是一个服务器软件,一个框架(Spring)
为什么要使用 ioc : 目的就是减少对代码的改动,也能实现不同的功能,实现解耦合。
将对象之间的相互依赖关系交给 IoC 容器来管理,并由 IoC 容器完成对象的注入。这样可以很大程度上简化应用的开发,把应用从复杂的依赖关系中解放出来。 IoC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件 / 注解即可,完全不用考虑对象是如何被创建出来的。
在实际项目中一个 Service 类可能依赖了很多其他的类,假如我们需要实例化这个 Service,你可能要每次都要搞清这个 Service 所有底层类的构造函数,这可能会把人逼疯。如果利用 IoC 的话,你只需要配置好,然后在需要的地方引用就行了,这大大增加了项目的可维护性且降低了开发难度。
在 Spring 中, IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是个 Map(key,value),Map 中存放的是各种对象。
Spring 时代我们一般通过 XML 文件来配置 Bean,后来开发人员觉得 XML 文件来配置不太好,于是 SpringBoot 注解配置就慢慢开始流行起来。

java中创建对象有哪些方式:
- 使用构造方法 , new Student()
- 反射
- 序列化
- 克隆
- IoC :容器创建对象
- 动态代理
IoC 的体现:
servlet 中 1:创建类继承 HttpServlet
2:在 web.xml 注册 servlet ,使用
<servlet-name> myservlet </servlet-name>
<servelt-class>com.kaho.controller.MyServlet</servlet-class>
3:使用 Servlet 的过程中没有创建 Servlet 对象, 即没有 MyServlet myservlet = new MyServlet();
4:Servlet 是 Tomcat 服务器创建的。 Tomcat 也称为容器
Tomcat 作为容器:里面存放有 Servlet 对象、Listener、Filter 等对象
IoC 的技术实现:
IoC 技术的实现方式是 依赖注入(DI)
DI(Dependency Injection):依赖注入, 只需要在程序中提供要使用的对象名称就可以, 至于对象如何在容器中创建、赋值、查找都由容器内部实现。程序代码不做定位查询,这些工作由容器自行完成。程序运行过程中,若需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创建后传递给程序。
Spring 是使用依赖注入(DI)实现了 IoC 的功能,Spring 底层创建对象,使用的是反射机制。
Spring 容器是一个超级大工厂,负责创建、管理所有的 Java 对象,这些 Java 对象被称为 Bean。Spring 容器管理着容器中 Bean 之间的依赖关系,Spring 使用**“依赖注入”**的方式来管理 Bean 之间的依赖关系。使用 IoC 实现对象之间的解耦合。
2. Spring 程序初步
1)创建 Maven 项目
2)引入相关 Maven 依赖
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.kaho</groupId>
<artifactId>ch01-hello-spring</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8

本文介绍了Spring框架中的IoC(控制反转)概念,解释了为何使用IoC以减少代码间的耦合。同时,文章通过创建一个简单的Spring程序,详细讲解了如何配置和使用Spring容器,包括Maven项目的建立、接口与实现类的定义、配置文件的创建以及测试过程。
最低0.47元/天 解锁文章
737

被折叠的 条评论
为什么被折叠?



