`
- 浏览:
24484 次
- 性别:
- 来自:
西安
-
一:Ioc
1.含义:为解决企业应用开发的复杂性而创建的开源框架,用基本的javaBean来完成EJB的事情 从大小和开销方向spring都是轻量级的
2.用途
① Ioc容器可以将对象之间的依赖关系交由spring管理,进行控制
② AOP:方便进行面向切面的编程,是oop的扩展,想加什么功能直接加
③ 能够集成各种优秀的框架,struts hibernate等
3.准备配置工作
①下载SpringFramework的最新版本,并解压缩到指定目录。
在IDE中新建一个项目,并将Spring.jar将其相关类库加入项目
② 配置文件 bean.xml
③在classpath创建日志输出文件。log4j.properties
④org.springframework.beans及org.springframework.context包是Spring IoC容器的基础
5 Spring 基础语义
1)IoC (Inversion of Control)=DI (Dependency Injection)控制反转和依赖注入
它是一种基于接口的编程,bean由容器创建在需要的时候拿来用即可,主要是采用反射来实现,其核心组建就是BeanFactory 但实际开发常用XmlBeanFactory
2)依赖注入的几种实现类型
Type1设值注入:通过类的setter方法完成依赖关系的设置,就是给bean类中属性加set方法
Type3 构造子注入:即通过构造函数完成依赖关系的设
public class DIByConstructor {
private final DataSource dataSource;
private final String message;
public DIByConstructor(DataSource ds, String msg) {
this.dataSource = ds;
this.message = msg;
}}
3)几种依赖注入模式的对比总结
Type2 设值注入的优势
1. 对于习惯了传统JavaBean开发的程序员而言,通过setter方法设定依赖关系显得更加直
观,更加自然。
2. 如果依赖关系(或继承关系)较为复杂,那么Type3模式的构造函数也会相当庞大(我们需
要在构造函数中设定所有依赖关系),此时Type2模式往往更为简洁。
3. 对于某些第三方类库而言,可能要求我们的组件必须提供一个默认的构造函数(如Struts
中的Action),此时Type3类型的依赖注入机制就体现出其局限性,难以完成我们期望的功
能。
Type3 构造子注入的优势:
1. “在构造期即创建一个完整、合法的对象”,对于这条Java设计原则,Type3无疑是最好的
响应者。
2. 避免了繁琐的setter方法的编写,所有依赖关系均在构造函数中设定,依赖关系集中呈现,
更加易读。
3. 由于没有setter方法,依赖关系在构造时由容器一次性设定,因此组件在被创建之后即处于
相对“不变”的稳定状态,无需担心上层代码在调用过程中执行setter方法对组件依赖关系
产生破坏,特别是对于Singleton模式的组件而言,这可能对整个系统产生重大的影响。
4. 同样,由于关联关系仅在构造函数中表达,只有组件创建者需要关心组件内部的依赖关系。
对调用者而言,组件中的依赖关系处于黑盒之中。对上层屏蔽不必要的信息,也为系统的
层次清晰性提供了保证。
5. 通过构造子注入,意味着我们可以在构造函数中决定依赖关系的注入顺序,对于一个大量
依赖外部服务的组件而言,依赖关系的获得顺序可能非常重要,比如某个依赖关系注入的
先决条件是组件的DataSource及相关资源已经被设定。
理论上,以Type3类型为主,辅之以Type2
类型机制作为补充,可以达到最好的依赖注入效果,不过对于基于Spring Framework开发的应用而言,
Type2使用更加广泛。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Spring Boot 基础讲解到 综合案例
Spring 详细讲解 Spring 是一个功能强大且功能齐全的 Java 应用程序框架,提供了一个通用的基础结构来支持开发企业级应用程序。 Spring 框架的核心是控制反转(IoC)和依赖注入(DI)模式,它们使得应用程序更加...
6. **核心容器(Core Container)**:包含Spring框架的基础部分,如BeanFactory和ApplicationContext。 7. **测试(Test)**:提供支持Junit和TestNG的测试工具类。 #### 四、Spring框架的下载与安装 Spring框架...
Spring面试题详细讲解 Spring 是什么? Spring 是一个轻量级的 IoC 和 AOP 容器框架。是为 Java 应用程序提供基础性服务的框架,目的是简化应用程序的开发主要由以下几个模块组成:Spring Core:核心类库,提供 ...
SpringBlade开发手册基础版 SpringBlade是一个商业级项目升级优化而来的SpringCloud微服务架构,采用Java8 API重构了业务代码,完全遵循阿里巴巴编码规范。该手册主要讲解如何使用SpringBlade开发微服务系统平台,...
接下来,我们将详细介绍Spring框架的基础概念、核心特性以及它在实际开发中的应用。 ### Spring框架概述 Spring框架是一个开源的Java平台,由Rod Johnson创建,并于2004年首次发布。它为Java应用程序提供了一个...
AOP Alliance的jar包(aopalliance.jar)是Spring AOP的基础,提供了一套通用的AOP接口,使得不同的AOP实现可以相互协作。 对于远程调用支持,Spring利用Apache Axis项目,包括axis.jar、saaj.jar和wsdl4j.jar,...
本教程的"Spring基础教程.pdf"文件将详细讲解上述概念,并通过实例演示如何使用Spring框架。你将学习到如何配置Spring容器,创建和管理Bean,理解AOP的原理,以及如何使用Spring MVC构建Web应用。同时,教程可能还会...
《Spring基础实例源码解析》 在学习Spring框架的过程中,实例和源码是理解其核心概念的两大关键。本教程将通过一系列基础实例,深入剖析Spring的核心特性——控制反转(IOC)和依赖注入(DI)。以下是对每个压缩...
以下是对Spring基础知识的详细讲解: 1. **依赖注入(Dependency Injection, DI)** 依赖注入是Spring的核心特性,它允许组件之间松耦合。通过容器管理对象的创建和对象之间的依赖关系,而不是在代码中硬编码依赖。...
JdbcTemplate是Spring JDBC的基础,它提供了模板方法来处理常见的JDBC任务,如执行SQL查询、更新、存储过程等。使用JdbcTemplate可以避免手动管理连接、预编译语句、结果集处理等繁琐工作,从而降低出错的可能性。 ...
5. **Spring基础教程.pdf** 这份教程深入浅出地讲解了Spring的基础知识,包括IoC容器、依赖注入、bean的生命周期管理、AOP编程、数据访问集成等。它是进一步学习Spring高级特性的基础,为开发者打下扎实的理论和...
《Spring入门讲解》是针对初学者精心准备的一份学习资源,旨在帮助读者快速掌握Spring框架的基础知识和核心概念。Spring是Java开发中最流行的轻量级框架之一,它以依赖注入(Dependency Injection,DI)和面向切面...
在提供的"**Myeclipse中Struts和Spring整合.doc**"文档中,应该包含了详细的步骤指导,包括创建Struts和Spring项目、配置相关XML文件、编写Action和Service等。这份文档对于初学者来说是一份宝贵的资源,它将帮助...
此外,`spring基础.pdf` 和 `spring控制模型.pdf` 可能会涵盖Spring的其他基础内容,如Bean的生命周期、事件监听、国际化支持等。`Spring3_权威开发指南.pdf` 则提供了更全面的Spring 3.x版本的开发指导。 对于初学...
这个压缩包文件"Spring中文 开发手册+aop讲解.zip"显然包含了丰富的Spring框架学习资源,特别是对于那些希望深入理解和使用AOP(面向切面编程)概念的开发者来说。以下是这些资源可能涵盖的关键知识点: 1. **...
1. Spring Core:这是Spring的基础,负责组件的创建、装配和销毁。 2. Spring Context:基于Core模块,增加了事件处理和国际化等功能,提供了上下文环境。 3. Spring AOP:提供面向切面编程支持,用于处理横切关注点...
以下是对这些知识点的详细阐述: 1. **Spring 事务处理**:Spring 提供了声明式事务管理,允许开发者在配置文件中定义事务边界,无需在业务逻辑代码中显式控制事务开始、提交和回滚。它主要基于AOP代理来实现,通过...