第一章 Spring基础

第一章 Spring基础



1.1 Spring介绍



  • Spring是一个框架,框架是高度抽取、可重用的代码的一种设计。Spring就是多个可重用的模块的集合,从而形成一个领域的整体解决方案。

  • Spring是一个IOC(DI)和AOP容器框架


Spring的优良特性:

  1. 非侵入式:基于Spring开发的应用中的对象可以不依赖Spring的API
  2. 依赖注入DI(Dependency Injection),控制反转**(IOC:invesion of control)**最经典的实现
  3. 面向切面编程AOP(Aspect Oriented Programming)
  4. 容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期,容器可以帮我们管理所有的组件(类)
  5. 组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用,在Spring中可以使用XML和Java注解注册对象
  6. 一站式:在IOC和AOP的基础之上可以整合各种企业应用的开源项目和优秀的第三方Jar包

1.2 Spring中的IOC和AOP


Spring的模块图:

在这里插入图片描述

从下到上依次为:


测试(Test):

Spring的单元测试模块


核心容器(Core Container):

IOC

​ -Beans:Spring Bean相关,如依赖查找、依赖注入

​ -Core:核心库

​ -Context:上下文

​ -Expression Language:表达式语言


Aop+Aspects(面向切面编程模块):


数据访问(Data Assess):

​ -JDBC:操作数据库的模块

​ -ORM(Object Relation Mapping):对象关系映射

​ -OXM(Object Relation Mapping) :对象XMl映射

​ -JMS:消息服务

​ -Transaction:事务


Web(开发Web应用的模块):

​ -web:webSocket

​ -Servlet:Servlet

​ -Portlet:

​ -Struts:


注意:Spring中的包很多,用到那个,就导入那个,导入不需要使用的包会降低性能



1.2.1 IOC

IOC是Inversion of control的缩写 ,翻译为控制反转,它不是什么技术,而是一种设计思想。


控制:在以前,我们是自己在对象内部通过new去创建对象,也就是程序主动去创建依赖对象。在Spring中,IOC容器来控制对象的创建。

反转:在以前,由我们去主动控制去获取依赖对象,也就是正转。在Spring中,由IOC容器来帮忙创建以及注入依赖对象,我们是被动的使用Spring注入的依赖对象,也就是反转。


1.2.2 DI

DI是英文Dependency Injection的缩写,翻译为依赖注入

应用程序因为需要IOC容器来提供对象所需要的的外部资源,所以程序依赖IOC容器,同时,IOC容器知道某个组件运行时需要哪些其他组件(对象),然后通过反射的形式将容器中准备好的对象(利用反射给属性赋值)注入到这个组件中。


IOC的一个重点就是在系统运行中,动态的向某个对象提供它依赖的对象,这就是通过DI来实现的。


例如,我们经常会写这样的代码:

// 主动创建对象
getIceCola{
    Ice ice = new Ice("-2C");
    Cola cola = new Cloa(400);
    Cup cup = new Cup("大杯");
    Machin machin = new Machin("冰可乐机");
    return machin.makeIceCola(ice, cola, cup);
}

上面创建对象的方式就是主动式,上面的例子比较简单,设想一下,如果需要创建很多对象,且这些对象初始化需要很多变量,是不是会很麻烦。

在Spring中,采用的是被动式的创建对象,也就是对象的创建和控制权交给了Spring,我们是被动的来接收和使用Spring给我们提供的对象。当然,前提是需要配置好这些对象。

使用Spring之后,我们这样写代码:

// 主动创建对象
getIceCola{
    @Autowired
    Ice ice;
    @Autowired
    Cola cola;
    @Autowired
    Cup cup;
    @Autowired
    Machin machin;
    return machin.makeIceCola(ice, cola, cup);
}

容器管理了所有的组件(有功能的类),上面的getIceCola也可以受容器管理。当容器发现BookServlet需要用到BookService类,它就会创建BookService对象,也就是说,之前,我们需要某个对象,我们需要主动的去new,但在Spring中,Spring发现我们需要某个类的对象时,它会自动帮我们创建,程序是被动的去接收IOC提供的对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值