`
convertto
  • 浏览: 123804 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Spring的概述

阅读更多

Spring的历史
Spring的初衷与目标
Spring框架
第一个Spring程序

Spring的历史
要讲到Spring的历史,就要先回顾一下J2EE的历史,J2EE应用程序的广泛实现是在2000年开始的,它的出现带来了诸如事务管理之类的核心中间层概念的标准化,但是在实践中并没有获得绝对的成功,因为开发效率,开发难度和实际的性能都令人失望。
Spring出现的一个最大的目标就是使J2EE开发变得更加容易。同时,Spring之所以与Struts、 Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说Spring是一个提供了更完善开发环境的框架,可以为普通的Java对象提供企业级的服务。

Spring的初衷与目标
Spring的初衷
J2EE开发应该更加简单。
使用接口而不是使用类,是更好的编程习惯。Spring将使用接口的复杂度几乎降低到了零。
为JavaBean提供了一个更好的应用配置框架。
更多地强调面向对象的设计,而不是现行的技术,如J2EE。
尽量减少不必要的异常捕捉。
使应用程序更加容易测试。
Spring的目标
可以令人方便愉快的使用Spring。
应用程序代码并不依赖于Spring APIs。
Spring不和现有的解决方案竞争,而是致力于将它们融合在一起。


Spring框架
Spring框架包含许多特性,并被很好地组织在下图所示的七个模块中
加图

Spring Core
Core 封装包是框架的最基础部分,提供IoC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。
Spring Context
构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。
Spring DAO
DAO 提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC 封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。
Spring ORM
ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。
Spring AOP
Spring的 AOP 封装包提供了符合 AOP Alliance规范的面向方面的编程(aspect-oriented programming)实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。
Spring Web
Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IoC容器初始化和针对Web的application context。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。
Spring Web MVC
Spring中的 MVC 封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种 清晰的 分离模型,在领域模型代码和web form之间。并且,还可以借助Spring框架的其他特性。

第一个Spring程序
下载Spring相关的jar文件
简单的Bean
package org.fire;

//一个简单的JavaBean
public class HelloBean {
    private String helloWorld;

    public String getHelloWorld() {
        return helloWorld;
    }

    public void setHelloWorld(String helloWorld) {
        this.helloWorld = helloWorld;
    }
}

Bean的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- Bean定义的文件中的根节点 -->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    <!-- 为每一个Bean进行设置 -->
    <!-- 设置Bean实例的识别名称 -->
    <!-- 指定Bean的类名称 -->
    <bean id="helloBean" class="org.fire.HelloBean">
        <!-- 设置Setter的名称 -->
        <property name="helloWorld">
            <!-- 设置要注入的字符串值 -->
            <value>Hello!fire</value>
        </property>
    </bean>
</beans>

示范程序
package org.fire;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
//示范程序
public class SpringDemo {
    public static void main(String[] args) {
        // 在classpath下读取指定的Bean定义文件
        Resource rs = new ClassPathResource("beans-config.xml");
        // 定义并建立BeanFactory
        // Spring所提供的IoC容器
        BeanFactory factory = new XmlBeanFactory(rs);
        // 指定Bean的名称来取得Bean实例
        HelloBean hello = (HelloBean) factory.getBean("helloBean");
        System.out.println(hello.getHelloWorld());
    }
}

分享到:
评论

相关推荐

    Spring概述与IOC.docx

    【Spring 概述】 Spring 是一个著名的 Java 开源框架,由 Rod Johnson 创建,旨在简化企业级应用程序的开发。它的核心特性包括控制反转(IoC)和面向切面编程(AOP)。Spring 框架的设计理念是轻量级,不仅在体积上...

    Java进阶之Spring概述共3页.pdf.zip

    【标题】"Java进阶之Spring概述共3页.pdf.zip" 涉及的主要知识点是Spring框架的基础概念和核心特性,这是一个广泛应用于企业级Java应用的开源框架。Spring以其依赖注入(Dependency Injection,DI)和面向切面编程...

    动力节点_王勇_JAVA视频教程_Spring001_Spring概述

    在本Java视频教程“Spring001_Spring概述”中,主讲人王勇老师将引领我们走进Spring框架的世界。Spring是Java开发中极其重要的一个轻量级框架,它的核心特性是依赖注入(Dependency Injection,简称DI)和面向切面...

    《partner4java 讲述Spring入门》之第一步:Spring概述与Spring IoC

    《Spring入门:Spring概述与Spring IoC》是针对初学者的一篇教程,旨在引导开发者进入Spring框架的世界。本文将深入探讨Spring的核心概念,特别是Spring的Inversion of Control(IoC,控制反转)特性,以及如何在...

    T22.2_Spring 概述 java 经典教程 经典教材

    T22.2_Spring 概述 java 经典教程 经典教材

    第01章 Spring概述

    Spring概述 ①Spring是一个开源框架 ②Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却...

    03.spring概述_spring_

    **Spring 框架概述** Spring 是一个开源的 Java 应用程序开发框架,由 Rod Johnson 在2003年发起,旨在简化企业级应用的开发。它以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-...

    Spring概述ppt课件.ppt

    Spring 框架是Java平台上的一个轻量级企业级应用程序开发框架,它以其Inversion of Control(IoC,控制反转)和Aspect Oriented Programming(AOP,面向切面编程)为核心,为开发者提供了丰富的功能和组件。Spring...

    spring概述_spring_.zip

    Spring 框架是Java平台上的一个开源应用程序框架,它主要设计用于简化企业级应用的开发。Spring 提供了一个全面的编程和配置模型,旨在提高生产效率,促进良好的编程实践,并减少代码的复杂性。本篇文章将深入探讨...

    Spring概述

    Spring的一些基本概念的介绍,例如IoC,AOP等,并介绍了这么使用Spring

    Spring概述及入门

    本书首先是一本通过通俗案例讲解Spring的教程;同时也是一本深入挖掘Spring及相关框架结构、设计原理;更是一本探讨J2EE软件开发中的艺术的书。本书还想讲述一条开源框架设计中金科玉律:思想决定一切,万变不离其宗...

    spring概述

    Spring 框架是 Java 开发领域中一个极为重要的轻量级开源框架,它由 Rod Johnson 在2003年发起,旨在简化企业级应用开发。Spring 提供了一个全面的编程和配置模型,用于现代Java应用程序,特别是针对基于Java EE...

    基于java的企业级应用开发:Spring概述.ppt

    【Spring 框架概述】 Spring 是一个广泛应用于企业级 Java 应用开发的开源框架,它的核心设计理念是控制反转(IoC)和面向切面编程(AOP)。Spring 的出现使得开发者能够以非侵入式的方式编写应用程序,减少了代码...

    Spring概述开源架构源码2021.pdf

    Spring框架是Java企业级应用开发中非常重要的开源框架,它采用轻量级设计,能够提供全面的编程和配置模型,用于现代基于Java的应用开发。Spring框架的核心思想包括控制反转(IoC)和面向切面编程(AOP),这两种设计...

    软件开发框架(J2EE)Spring概述习题与答案.docx

    【Spring 框架概述】 Spring 是一个广泛应用于企业级 Java 开发的开源框架,它以其轻量级、模块化和全面的特性而受到开发者喜爱。Spring 为 J2EE 应用提供了一个全面的编程和配置模型,尤其是在实现依赖注入(DI)...

    软件开发框架(J2EE)Spring概述习题与答案.pdf

    Spring 框架是Java平台上的企业级应用开发框架,尤其在J2EE环境中,它提供了全面的解决方案。Spring以其轻量级、模块化、松耦合和强大的依赖注入特性而闻名。 1. **MVC设计模式**:MVC全称是Model-View-Controller...

    软件开发框架(J2EE)Spring概述实训指导书.pdf

    Spring 框架是Java平台上的一个核心软件开发框架,特别是在J2EE环境中,它为构建企业级应用提供了全面的解决方案。Spring以其轻量级、模块化和强大的依赖注入特性而闻名,使得开发者能够更专注于业务逻辑,而不是...

    Spring概述.

    Spring

    Spring源码解析4章150页+Spring3.2.4中文注释源码

    1、Spring概述 2、一切从bean开始 3、俯瞰Spring架构设计 4、Spring源码下载 二阶段 1、什么是IOC/DI 2、SpringIOC体系结构 3、源码分析-IOC容器的初始化 4、源码分析-IOC容器的依赖注入 5、源码分析-IOC容器的高级...

Global site tag (gtag.js) - Google Analytics