The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform
Spring 框架为现代基于 java 的企业应用程序提供了一个全面的编程和配置模型——适用于任何类型的部署平台。
1、非侵入式
2、容器
3、IoC
4、AOP
5、方便程序的测试
主流市场推荐、学习的人数多、Spring社区活跃、工作需要、属于开源框架、方便web开发、集成度高。
还因为Spring具有 以下优点:
Spring框架体系结构:
This chapter covers the Spring Framework implementation of the Inversion of Control (IoC) principle. IoC is also known as dependency injection (DI). It is a process whereby objects define their dependencies (that is, the other objects they work with) only through constructor arguments, arguments to a factory method, or properties that are set on the object instance after it is constructed or returned from a factory method. The container then injects those dependencies when it creates the bean. This process is fundamentally the inverse (hence the name, Inversion of Control) of the bean itself controlling the instantiation or location of its dependencies by using direct construction of classes or a mechanism such as the Service Locator pattern. --spring官网
本章介绍了控制反转原则的 Spring 框架实现。也被称为依赖注入。这是一个过程,对象仅通过构造函数参数、工厂方法的参数或者在对象实例被构造或者从工厂方法返回后在其上设置的属性来定义它们的依赖关系(也就是说,它们使用的其他对象)。然后容器在创建 bean 时注入这些依赖项。这个过程从根本上来说是 bean 本身的逆过程(因此得名为控制反转) ,通过使用类的直接构造或服务定位器模式之类的机制来控制其依赖项的实例化或位置。
上面的话,简单的说就是 使用对象的人并不和对象有直接关联。
控制反转(Inversion of Control)是说创建对象的控制权发生转移,以前创建对象的主动权和创建时机由应用程序把控,而现在这种权利转交给 IoC 容器,它就是一个专门用来创建对象的工厂,你需要什么对象,它就给你什么对象。有了 IoC 容器,依赖关系就改变了,原先的依赖关系就没了,它们都依赖 IoC容器了,通过 IoC 容器来建立它们之间的关系。
The
org.springframework.context.ApplicationContext
interface represents the Spring IoC container and is responsible for instantiating, configuring, and assembling the beans.
org.springframework.context.ApplicationContext
的实例化对象
ApplicationContext 接口表示 Spring IoC 容器,负责实例化、配置和装配 bean。容器通过读取配置元数据获取关于实例化、配置和组装什么对象的指令。配置元数据用 XML、 Java 注释或 Java 代码表示。它允许您表达组成应用程序的对象以及这些对象之间丰富的相互依赖关系。
Spring 如何工作?
在 Spring 中,构成应用程序主干的对象和由 Spring IoC 容器管理的对象称为 bean。Bean 是由 Spring IoC 容器实例化、组装和管理的对象。否则,bean 只是应用程序中的许多对象之一。
配置元数据
基本结构
下面的示例显示了基于 xml 的配置元数据的基本结构:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- more bean definitions go here -->
</beans>
面向切面编程,是针对面向对象编程的一种补充,同时也是spring中第二个最核心的功能,例如可以进行权限认证,日志输出等,可以无侵入的对原来的功能进行切面加入自定义的非业务功能。
重新学习Spring 的第一天,又开始了天天光顾Spring官网的日子。