Spring的基本应用
发布日期:2021-04-30 21:02:40 浏览次数:99 分类:精选文章

本文共 2500 字,大约阅读时间需要 8 分钟。

Spring概述及核心容器

Spring 是一个分层的Java SE/EE全栈轻量级开源框架,以 IoC(控制反转)和 AOP(面向切面编程)为核心原理,利用 JavaBean 实现各种功能。

Spring的优点

  • 非侵入式设计:无需修改现有代码即可引入 Spring。
  • 松耦合:通过控制反转和面向切面编程降低代码耦合度。
  • 支持 AOP:提供丰富的面向切面编程功能。
  • 声明式事务处理:简化事务管理逻辑。
  • 易于测试:支持单元测试和集成测试。
  • 集成能力强:支持多种框架和技术的集成。

Spring的体系结构

Spring 分为多个模块,主要包括以下几个部分:

  • Core Container(核心容器)

    • Beans:提供了 BeanFactory,用于管理对象。
    • Core:提供 IoC 和 DI(依赖注入)的功能。
    • Context:用于访问和配置对象,基于 Core 和 Beans 模块。
    • SPEL:Spring Expression Language,用于运行时对象图操作。
  • Data Access/Integration(数据访问与集成)

    • JDBC:提供数据库操作的抽象层。
    • ORM:集成 JPA、Hibernate 等 ORM 工具。
    • OXM:支持 XML 与对象的映射。
    • JMS:提供消息传递服务。
    • Transactions:支持事务管理。
  • Web(Web 模块)

    • WebSocket:实现 WebSocket 通信。
    • Servlet:提供 MVC 模型和 REST Web 服务。
    • Web:支持多文件上传、IoC 容器初始化等。
    • Portlet:在portlet 环境中提供 MVC 功能。
  • 其他模块

    • AOP:实现面向切面编程。
    • Aspects:集成 AspectJ。
    • Instrumentation:提供类工具和类加载器支持。
    • Messaging:支持消息传递体系结构。
    • Test:提供单元测试和集成测试支持。
  • Spring的下载及目录结构

    Spring 的 jar 包分为两部分:Spring 框架包和第三方依赖包。

    Spring 框架包

    • 下载地址:http://repo.spring.io/simple/libs-release-local/org/springframework/spring/4.3.6.RELEASE/
    • 解压目录结构:
      • docs:API 文档和开发规范。
      • libs:JAR 包和源码。
      • Schema:开发所需的 schema 文件。
      • libs 中包含 60 多个 JAR 包,例如:
        • spring-core-4.3.6.RELEASE.jar:核心工具类。
        • spring-beans-4.3.6.RELEASE.jar:Bean 管理和配置。
        • spring-context-4.3.6.RELEASE.jar:企业级服务支持。
        • spring-expression-4.3.6.RELEASE.jar:表达式语言。

    第三方依赖包

    Spring的核心容器

    Spring 提供两种核心容器:BeanFactoryApplicationContext

    BeanFactory(了解)

    • BeanFactory 是 Spring 的基础容器,用于管理 Spring 组件。
    • 创建方式:
      BeanFactory beanFactory = new XmlBeanFactory(new FileSystemResource("F:/applicationContext.xml"));

    ApplicationContext(应用上下文)

    • ApplicationContext 是 BeanFactory 的扩展版本,提供国际化、资源访问等功能。
    • 创建方式有两种:
    • ClassPathXmlApplicationContext:从类路径加载配置文件。
    • FileSystemXmlApplicationContext:从文件系统路径加载配置文件。
    • 在 Web 项目中,通常由 Web 服务器自动初始化 ApplicationContext,例如通过 ContextLoaderListener

    获取 Bean 的方式:

    Object getBean(String name); // 根据 Bean ID 获取
    T getBean(Class
    requiredType); // 根据类类型获取

    控制反转(IoC)

    Spring 的核心功能是通过控制反转将对象的实例由调用者转移给 Spring 容器,控制权发生反转。

    实现步骤

  • 在 Eclipse 中创建 Web 项目,添加 Spring 的基础包和 commons-logging JAR 包。
  • 创建接口 UserDao,定义 say() 方法。
  • 创建实现类 UserDaoImpl,实现 UserDao 接口。
  • applicationContext.xml 中定义 userDao Bean。
  • 创建测试类 TestIoC,初始化 ApplicationContext 并获取 userDao 实例,调用 say() 方法。
  • 依赖注入(DI)

    依赖注入是 Spring 的另一个重要功能,通过 setter 方法或构造器注入依赖对象。

    实现步骤

  • 创建接口 UserService,定义 say() 方法。
  • 创建实现类 UserServiceImpl,声明 userDao 属性并添加 setter 方法。
  • applicationContext.xml 中定义 userService Bean,并注入 userDao
  • 创建测试类 TestDI,初始化 ApplicationContext 并获取 userService 实例,调用 say() 方法。
  • 上一篇:带你一起探究Android事件分发机制,最全Android知识总结
    下一篇:第一范式,第二范式,第三范式,BCNF范式理解

    发表评论

    最新留言

    路过,博主的博客真漂亮。。
    [***.116.15.85]2026年06月16日 12时02分49秒