1.认识框架
spring全家桶:spring、springmvc、springboot、springcloud。
Spring出现在2002年左右,解决了企业级开发的难度。减轻了对项目模块之间的管理、类与类之间的管理,帮助开发人员创建对象,管理对象之间的关系。spring核心技术为:IoC、AOP。Spring能实现模块之间、类之间的解耦合。
依赖:class A中使用class B中的属性或者方法,叫做class A依赖class B。这说明class A和class B是有关系的,如果没有class B,class A的功能就无法实现,而Spring能够管理A和B之间的关系,能够管理依赖。
2.Spring相关下载
教程:https://www.cnblogs.com/chy18883701161/p/11108542.html
官网:spring.io
其中,有4个是Spring的基础包,对应Spring核心容器的4个模块,是Spring项目必需的:
- spring-core-5.1.8.RELEASE.jar //Spring的核心工具类,其它jar包是建立这个包基础上的,都要用到这个包中的类。
- spring-beans-5.1.8.RELEASE.jar //配置、创建、管理Bean,负责IoC、DI
- spring-context-5.1.8.RELEASE.jar //提供在基础IoC上的扩展服务
- spring-expression-5.1.8.RELEASE.jar //提供对Spring表达式语言的支持
3.Spring的优点
(1)轻量
Spring框架使用的jar都比较小,一般在1M以下或者几百kb。Spring核心功能的所需的jar总共在3M左右。Spring框架运行占用的资源少,运行效率高。不依赖其他jar。
(2)针对接口编程,解耦合
Spring提供了IoC控制反转,由容器管理对象以及对象间的依赖关系。原来在程序代码中的对象创建方式,现在由容器完成。对象之间的依赖解耦合。
(3)AOP编程的支持
在Spring中,开发人员可以从繁琐的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。
(4)方便集成各种优秀框架
Spring不排斥各种优秀的框架,相反其可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts、Hibernate、MyBatis)等的直接支持。
4.Spring的体系结构
Spring由20多个模块组成,它们可以分为数据访问/集成(Data Access/Integration)、Web、面向切面编程(AOP,Aspects)、提供JVM的代理(Instrumentation)、消息发送(Messaging)、核心容器(Core Container)和测试(test)。
其中,Mybatis就属于ORM中的一类;SpringMVC属于Web(开发)模块;AOP和Aspects模块就是关于面向切面编程;Core Container模块属于IoC中的概念,容器中存的是Java对象,由Spring容器来管理这些对象。
5.IoC概念
IoC(Inversion of Control):控制反转,把对象的创建、赋值、管理工作都交给容器实现。
控制:创建对象、对象的属性赋值、对象之间的关系管理。
反转:把原来开发人员管理、创建对象的权限转移给容器实现。由容器代替开发人员管理对象、创建对象、给属性赋值。
正转:由开发人员在代码中使用new构造方法创建对象,开发人员主动管理对象。
为什么使用IoC:减少对代码的改动,实现不同的功能,实现解耦合,让代码的管理更加松散。
IoC是一个概念,其实现方式多种多样,当前比较流行的实现方式是依赖注入(DI)。
依赖注入(DI):指程序运行过程中,若需要调用另一个对象的协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创建后传递给程序。
Java中创建对象有哪些方式?
1)构造方法
2)反射
3)序列化
4)克隆
5)IoC:容器创建对象
6)动态代理
IoC的技术实现:DI(Dependency Injection)依赖注入是IoC的技术实现,只需要在程序中提供要使用的对象名称就可以,至于对象如何在容器中创建、赋值、查找都由容器内部实现。Spring是使用DI实现了IoC的功能,Spring底层创建对象,使用的是反射机制。