Spring6学习笔记01

本文介绍了Spring框架,一款为企业应用提供简单性、可测试性和松耦合性的JavaEE轻量级开源框架,涵盖IoC、AOP、单元测试等内容,以及如何通过反射创建SpringBean并管理对象依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、课程简介

Spring框架是一款极其优秀的轻量级开源框架,为了解决企业应用开发的复杂性而出现。Spring框架的用途不仅仅限于服务器端的开发,从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。Spring框架凭借其强大的功能和优良的性能,在企业开发中被广泛应用。

Spring6框架:

第一章 概述

第二章 入门

第三章 容器:IoC

第四章 原理:手写IoC

第五章 面向切面:AOP

第六章 单元测试:JUnit

第七章 事务

第八章 资源操作:Resources

第九章 国际化:i18n

第十章 数据校验:Validation

第十一章 提前编译:AOT

二、概述-Spring是什么

Spring是一款主流的Java EE轻量级开源框架

框架:可以理解为是一个程序的半成品,也就是说它帮我们实现了一部分功能,用这个框架我们可以减少代码实现功能的开发

开源:也就是说它开放源代码,通过源代码可以看到它的底层是怎么做到的

轻量级:我们从两个方面去理解,一个方面是它的体积很小,第二个方面用Spring不需要依赖于其它的组件就能进行使用

三、概述-Spring狭义和广义划分

看md文件

狭义的 Spring:Spring Framework

狭义的 Spring 特指 Spring Framework,通常我们将它称为 Spring 框架。

Spring 框架是一个分层的、面向切面的 Java 应用程序的一站式轻量级解决方案,它是 Spring 技术栈的核心和基础,是为了解决企业级应用开发的复杂性而创建的。

Spring 有两个最核心模块: IoC 和 AOP。

IoC:Inverse of Control 的简写,译为“控制反转”,指把创建对象过程交给 Spring 进行管理。

AOP:Aspect Oriented Programming 的简写,译为“面向切面编程”。AOP 用来封装多个类的公共行为,将那些与业务无关,却为业务模块所共同调用的逻辑封装起来,减少系统的重复代码,降低模块间的耦合度。另外,AOP 还解决一些系统层面上的问题,比如日志、事务、权限等。

四、概述-SpringFramework特点

看md文件

  • 非侵入式:使用 Spring Framework 开发应用程序时,Spring 对应用程序本身的结构影响非常小。对领域模型可以做到零污染;对功能性组件也只需要使用几个简单的注解进行标记,完全不会破坏原有结构,反而能将组件结构进一步简化。这就使得基于 Spring Framework 开发应用程序时结构清晰、简洁优雅。

  • 控制反转:IoC——Inversion of Control,翻转资源获取方向。把自己创建资源、向环境索取资源变成环境将资源准备好,我们享受资源注入。

  • 面向切面编程:AOP——Aspect Oriented Programming,在不修改源代码的基础上增强代码功能。

  • 容器:Spring IoC 是一个容器,因为它包含并且管理组件对象的生命周期。组件享受到了容器化的管理,替程序员屏蔽了组件创建过程中的大量细节,极大的降低了使用门槛,大幅度提高了开发效率。

  • 组件化:Spring 实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用 XML 和 Java 注解组合这些对象。这使得我们可以基于一个个功能明确、边界清晰的组件有条不紊的搭建超大型复杂应用系统。

  • 一站式:在 IoC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库。而且 Spring 旗下的项目已经覆盖了广泛领域,很多方面的功能性需求可以在 Spring Framework 的基础上全部使用 Spring 来实现。

八、入门-入门案例程序分析

如何使用反射创建的对象

1、加载bean.xml配置文件

2、对xml文件进行解析操作

3、获取xml文件bean标签属性值id属性值和class属性值

4、使用反射根据类全路径创建对象

怎么创建的呢?

什么是反射,反射就是得到类的字节码文件,通过字节码文件操作类中所有内容

//反射创建对象
    @Test
    public void testUserObject1() throws Exception {
        //获取类Class对象
        Class clazz = Class.forName("com.atguigu.spring6.User");
        //调用方法创建对象
        //Object o = clazz.newInstance();
        User user = (User) clazz.getDeclaredConstructor().newInstance();
        System.out.println(user);
    }

创建对象放到哪里?

Map<String, BeanDefinition> beanDefinitionMap

key:唯一标识
value:类的定义(描述信息)

十一、容器:IOC-概述(上)

Spring项目:Java对象的创建和销毁都是由IOC容器来进行管理的

Spring 通过 IoC 容器来管理所有 Java 对象的实例化和初始化,控制对象与对象之间的依赖关系。我们将由 IoC 容器管理的 Java 对象称为 Spring Bean,它与使用关键字 new 创建的 Java 对象没有任何区别

十二、容器:IOC-概述(中)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值