1. Spring 体系结构
- spring-framework/Core Technologies
- Spring 5.0 基于 Java 8
1.1 核心概念
- IoC: Inverse of Control 控制反转。对象的创建权力由程序反转给 Spring 构架
- DI: Dependency Injection 依赖注入。在 Spring 框架负责创建 Bean 对象时,动态的将依赖对象注入到 Bean 组件中
- AOP: Aspect Oriented Programming 面向切面编程。在不修改目标对象的源代码情况下,增强 IoC 容器中 Bean 的功能
- Spring 容器,即 Ioc 容器,底层是一个 BeanFactory
1.2 设计原则
- 高内聚,低耦合
2. IOC
- IOC 全名控制反转(Inverse of Control),它是一种编程原则(设计思想),它的设计和架构可以实现组件间的解耦,核心思想是将控制权转移出去
- 控制权的转移:IOC 为了实现解耦,将原有的对象间的主动依赖改为被动接收型依赖( 由 new 对象,改为 set 接口(让用户选择实现,主动权在调用方))
2.1 IOC 与 DI 的区别
- IOC 是一种思想、编程原则,DI 是 IOC 思想的一种实现方式
- IOC 的实现方式有依赖查找( Dependency lookup )和依赖注入( Dependency Injection )
2.2 依赖注入
- 依赖 - bean对象创建依赖容器
- 注入 - bean对象属性由容器注入
依赖指的是 Bean 实例中的属性
依赖(属性)分为:简单类型(8种基本类型和String 类型)的属性,POJO类型的属性,集合数组类型的属性
2.3 关于 Spring IOC
- ApplicationContext 和 BeanFactory 是 SpringFramework 中两个核心的 IOC 容器的抽象。BeanFactory 仅仅是提供了一个容器管理的基本能力,ApplicationContext 在此基础上做了更加完善、强大的扩展
3. 命名空间
- bean
- context
- tx
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
default-autowire="byName">
<import resource="classpath:order-process.xml"/>
<context:property-placeholder location="classpath:application.yml"/>
</beans>
网友评论