`
- 浏览:
24052 次
- 性别:
- 来自:
西安
-
一: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的基础
第2章 SpringCache缓存详细讲解及应用 第3章 Redis高级缓存讲解及应用 第4章 SpringSecurity安全详细讲解及应用 第5章 RabbitMQ高级消息的讲解及应用 第6章 ElasticSearch详细讲解及应用 第7章 Eureka分布式服务器的...
spring基础视频教程 ,某优秀视频讲解。
spring的知识整理和框架的结合开发。 IOC 控制反转(Inversion of Control)、 依赖注入(Dependency Injection)等基础知识的详细讲解。
本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...
本书最大的特色在于每章都是由浅入深,从一个简单的示例入手,让读者快速了解本章内容,然后再详细讲解本章涉及的基本原理和知识点,最后再通过一个详细的示例宋巩固所学内容。 本书每一章的例子都是经过精挑细选,...
spring3.0 基础原理讲解,详细描述了spring的核心功能,最基础使用讲解。共3部分
spring3.0 基础原理讲解,详细描述了spring的核心功能,最基础使用讲解。
springboot讲解 全面 springboot讲解 全面 springboot讲解 全面
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 优势亮点(简化) 本次课程以SpringData为中心,重点讲解了其JPA组件,扩展讲解了redis,mongDB,ES组件,并且对部分组件做了...
Spring重点知识,答案讲解详细,涵盖Spring全部知识,考试必考题
spring3.0 基础原理讲解,详细描述了spring的核心功能,最基础使用讲解。共3部分
本书主要介绍了Spring 3.0的核心内容,不仅讲解了Spring 3.0的基础知识,还深入讨论了Spring IoC容器、Spring AOP、使用Spring JDBC访问数据库、集成Hibernate、Spring的事务管理、Spring MVC、单元测试、敏捷开发...
-熟悉Spring基础 -熟悉Maven使用 基于SpringBoot2.3与2.4版本讲解,适用于有Spring、SpringMVC基础,初学或想深入了解SpringBoot的学习者。 教程包含核心基础、Web原理、单元测试、数据访问、指标监控等章节。
资源包含如下: 1,JAVA_IO详解_包括讲解IO中各种流及其用法.pdf 2,Java集合排序及java集合类详解.pdf 3,JDBC入门电子书.pdf 4,Spring源代码解析.pdf 5,第三章 Servlet 最佳实践.pdf
从微服务基础知识到SpringCloud核心技术讲解,全高清PDF非常经典的学习资料
这是一个Spring开发入门教程 pdf格式 高清晰 包括 下载安装 配置 实例 基础讲解 很适合快速入门和了解Spring开发的步骤 思路清晰 另外还包含struts+spring+hibernate整合开发实例的配置步骤讲解与等价Spring重构
文档中包括了很精细的讲解,一步一步地教你如何使用spring,并且也整合了hibernate,struts,里面也有源码,可以直接使用,我用过,相当不错.是一本相当好的Spring快速入门教程,用到的工具也相当全面,有ant,tomcat等,是个...
spring 2.0 有基础到深入详细讲解教程,适合初学者到高级工程师使用