关于Spring的乱七八糟(1)

什么是 Spring?

Spring 是 Java EE 的是一个轻量级的开源框架.
使 J2EE 开发更容易
通过实现基于POJO的编程模型
Spring 的核心 design pattern 是 IOC

在这里插入图片描述

使用spring有什么好处?

轻量级:在尺寸和透明度方面,Spring是轻量级的。基本版本spring框架的大小约为2MB。
控制反转(IOC):使用该技术在弹簧中实现松耦合控制反转。对象给出其依赖关系,而不是创建或寻找依赖对象。
面向方面(AOP):Spring支持面向方面的编程并实现内聚通过将应用程序业务逻辑与系统服务分开来进行开发。
容器:Spring包含并管理应用程序的生命周期和配置
对象。
MVC框架
事务管理:Spring提供了一致的事务管理界面可以缩小到本地事务(例如,使用单个数据库)并进行扩展最多进行全球交易(例如,使用JTA)。
异常处理:Spring提供了方便的API来翻译特定于技术的异常(例如,由JDBC,Hibernate或JDO)变为一致的,未经检查的例外。

Spring 都有哪些模块?

在这里插入图片描述

Spring 核心容器 – 该层基本上是 Spring Framework 的核心。它包含以下模
块:
 Spring Core
 Spring Bean
 SpEL (Spring Expression Language)
 Spring Context
数据访问/集成 – 该层提供与数据库交互的支持。它包含以下模块:
 JDBC (Java DataBase Connectivity)
 ORM (Object Relational Mapping)
 OXM (Object XML Mappers)
 Transaction
Web – 该层提供了创建 Web 应用程序的支持。它包含以下模块:
 Web
 Web – Servlet
 Web – Socket
 Web – Portlet
AOP
 该层支持面向切面编程
Instrumentation
 该层为类检测和类加载器实现提供支持。
Test
 该层为使用 JUnit 和 TestNG 进行测试提供支持。
几个杂项模块:
Messaging – 该模块为 STOMP 提供支持。它还支持注解编程模型,该模型用于从 WebSocket 客户端路由和处理 STOMP 消息。
Aspects – 该模块为与 AspectJ 的集成提供支持。

什么是 Spring 的配置文件?

Spring 的配置文件是一个 XML 文件.
这个文件包含类的或者说 bean 的信息以及它们是如何配置的

什么是依赖注入 - Dependency Injection?

反转控制 Inversion of Control (IoC) 或者叫依赖注入 Dependency Injection is a general concept, and it can be expressed in many different ways and Dependency Injection is merely one concrete example of Inversion of Control.

注入是一个通用概念,可以用许多不同的方式表示,并且依赖注入只是控制反转的一个具体示例。

IoC 的类型?

1.Set 注入
2.构造器注入
3.静态工厂的方法注入
4.实例工厂的方法注入

你更倾向于哪种 DI

采用以设置注入为主,构造注入为辅. 对于依赖关系无须变化的注入, 尽量采用构造注入;而其他的依赖关系的注入, 则采用设置注入.
对于依赖关系无须变化的Bean,构造注入更有用处;因为没有setter方法,所有的依赖关系全部在构造器内设定,因此,不用担心后续代码对依赖关系的破坏.安全性高.

setter : 创建完对象之后再同过set()方法进行设定. 对于复杂的依赖关系, 如果采用构造注入, 会导致构造器过于臃肿, 难以阅读.

IoC 有什么好处?

减少代码
是应用更容易测试
松耦合 (Loose coupling) 和最小的侵入性
IOC containers support eager instantiation and lazy loading of services.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值