手记

Spring(一)-Spring IoC和DI容器

1.Spring简介

Spring是J2EE开发中一个很重要的框架。它主要用来解决下面两个问题。

  • 解决大型软件开发中,对象之间由于复杂的依赖关系导致的牵一发而动全身的强耦合问题.使用IoC思想解决。

  • 使用面向切面编程, 解决控制事务的繁琐操作.使用AOP解决。

根据Spring解决的问题,和其对应的专业术语。我们也说Spring是一个轻量级的DI/IoCAOP容器开源框架, 其提倡最小侵入式管理应用中的代码,意味着我们可以随时卸载和安装Spring.

接下去我们需要理解下Spring以下的专业术语,我就不抄写网络上的术语内容,并不是那么通俗,以我的理解如下。

1.2 Spring术语

  • 应用程序(Application).

    • 对于JavaWeb来将,应用程序就是一个Web App.例如OA系统等.

  • 框架:

    • 框架是一种抽象, 其抽取了开发中可以重用和常见的功能的集合。

  • 非侵入式设计:

    • 非侵入式是编程中常见的一种设计方式,它保障了别人用你的框架,即使到时候不用了,也不会应用删除你的框架而要更改大量的代码, 可以不用的时候就直接删除,不会带来依赖问题。

    • 从代码的角度来说.非侵入式,保证了不用继承框架的类.也就不会和依赖于框架的类.是一种解耦的设计、

  • 轻量级和重量级

    • 所谓的轻量级是相对于重量级来说。一般是由以下几个特点.非侵入式资源占用少部署简单易用.所以所谓的轻是在有重的前提下的对比。

  • POJO:

    • Plain Ordinary Java Object / Pure Old Java Object.所谓的POJO是不继承Java的任何,不实现任何的接口,但可以包含业务逻辑持久化逻辑

  • 容器:

    • 容器主要用来存放对象.管理对象的整个生命周期.比如Tomcat是Servlet/JSP容器.

1.3 Spring的框架构架

之所以要了解Spring构架是在学习之前我们要对一样事务大体的骨架有一个了解。在介绍Spring的构架之前,我们简要的说下Spring的优势。

Spring的优势

  • 低侵入、低耦合

  • 声明式事务管理

  • 方便集成其他框架

  • Spring框架包含JavaEE 三层的每一层的解决方案(一站式)

构架

从上之下。主要分为

  • 数据访问层(Data Access)

  • Web层

  • AOP模块

  • 核心容器层(Core Coniainer)Beans、Core、Context、SpEL

  • 测试层(Test)

Spring框架版本

这里简要介绍下Spring各个版本的变化。其中Spring2.5是变化最大的一个版本,其已经完成了大部分Spring的核心功能。而后续版本都是在其上增加新的语法支持等。

  • Spring2.5: 驱动编程、支持SimpleJdbcTemplate的命名参数操作

  • Spring3.x: 全面支持泛型不支持JDK 1.4。支持SpEL、支持WebService的OXM

  • Spring4.x:  支持Java8支持JavaEE6规范泛型限定式依赖注入、对Hiberante4的集成事务管理提供更好的管理方案.

介绍完Spring的一些基础常识,我们看是以Spring来写一个最简单的HelloWorld,学习基于Spring搭建应用的基本步骤。

2. 基于Spring如何编写程序

关于Spring插件

如果不是用Spring官方提供的Eclipse。需要自己安装SIS插件.

2.1 基于Spring的HelloWorld编写步骤

  • 导入jar包。并build到classpath。

    • spring-beans-4.0.0.RELEASE.jar

    • spring-core-4.0.0.RELEASE.jar

    • commons-logging-1.1.3.jar

  • 将我们的控制权转交给Spring去控制

    • 创建bean的xml配置文件

    • 注册bean到容器, 进行属性注入。注册HelloWorld到IoC容器中。

  • 启动IoC容器, 根据Bean的idBean的类型, 从Ioc容器中取出对应的bean实例.bean的获取方式又有下面三种.一般我们使用最后一种,因为最后这种既能获取到bean,又无需强转.

    • 根据ID或者name获取bean.ioc.getBean(String)

    • 根据类型获取bean.ioc.getBean(Class)

    • 根据ID和类型获取bean.ioc.getBean(String, Class)

目录结构



作者:sixleaves
链接:https://www.jianshu.com/p/282dcae0b4e3


0人推荐
随时随地看视频
慕课网APP