Spring框架的核心是Spring容器。容器负责管理应用中组件的生命周期,它会创建这些组件并保证它们的依赖能够得到满足,这样的话,组件才能完成预定的任务。
Spring框架关注于通过DI、AOP和消除样板式代码来简化企业级Java开发。
在基于Spring的应用中,你的应用对象生存与Spring容器中。Spring容器负责创建对象,装配它们,配置它们并管理它们的整个生命周期,从生存到死亡。
Spring自带了多个容器实现。归为两类:bean工厂,提供DI支持;应用上下文,基于BeanFactory构建,并提供应用框架级别的服务。
一:DI
优点:能够让相互协作的软件组件保持松散耦合
通过DI,对象的依赖关系将由系统中负责协调各对象的第三方组件在创建对象的时候设定。对象无需自行创建或管理它们的依赖关系。
创建应用组件之间的协作的行为通常称为装配。
Spring通过应用上下文(Application Context)装载bean的定义并把它们组装起来。Spring应用上下文全权负责对象的创建和组装。Spring自带了多种应用上下文的实现,它们之间主要的区别仅仅在于如何加载配置。
二、AOP
优点:允许你把遍布应用各处的功能分离出来形成可重用的组件。能够实现关注点分离的一项技术。
系统由许多不同的组件组成,每一个组件各负责一块特定功能。除了实现自身核心的功能之外,这些组件还经常承担着额外地职责。诸如日志、事务管理和安全这样的系统服务经常融入到自身具有核心业务逻辑的组件中去,这些系统服务通常被称为横切关注点,因为它们会跨越系统的多个组件。
三、使用模板消除样板式代码。
装配Bean
默认,Spring中的bean都是单例的
Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系。但是作为开发人员,你需要告诉Spring要创建那些bean并且如何将其装配在一起,集中主要装配的机制:
1、在XML中进行显示装配;
2、在Java中进行显示装配;
3、隐式的bean发现机制和自动装配