zoukankan      html  css  js  c++  java
  • Spring核心简介

    Spring简介

    Spring是一个开源、轻量级框架。在诞生之初,创建Spring的主要目的是用来替代更加重量级的企业级Java技术,尤其是EJB(Enterprise JavaBean)。从最初的挑战者,到现在诸多标准的制定者;从传统的JEE应用,到大数据、NoSQL、企业应用集成、批处理、移动开发等领域,Spring都在参与和发挥影响力。

    Spring的目标

    Spring致力于简化企业级Java开发,促进代码的松散耦合。成功的关键在于IOC和AOP。它采取4种关键策略:

    1. 基于POJO(简单老式Java对象 Plain Old Java object)的轻量级和最小侵入性编程
      • Spring不会强迫你实现Spring规范的接口或继承Spring规范的类
      • 在基于Spring构建的应用中,它的类通常没有任何痕迹表明你使用了Spring,它依旧是POJO
    2. 通过依赖注入和面向接口实现松耦合
      • 不同的类必须以适当的方式进行交互来完成有实际意义的功能,所以耦合是必须的,但是需要谨慎管理
      • 依赖注入会将所依赖的关系自动交给目标对象,而不是让对象自己去获取依赖
    3. 基于切面和惯例进行声明式编程
      • AOP以声明的方式将服务模块化并应用到他们需要影响的组件中去,使这些组件具有高内聚性并更加关注自身业务,确保POJO的简单性。
    4. 通过切面和模板减少样板式代码
      • Spring通过模板封装来消除样板式代码(大量重复代码)

    Spring容器

    容器是Spring框架的核心。在Spring应用中,对象由Spring容器创建和装配,并存在容器之中 。

    1. Spring实现了多个容器,主要有两种,bean工厂(由org.springframework.beans.factory.beanFactory接口定义)和应用上下文(由org.springframework.context.ApplicationContext接口定义)。我们使用更高级的后者。
    2. Spring自带了多种类型的应用上下文,比如从文件系统下的一个或多个XML配置文件中加载上下文定义使用FileSystemXmlapplicationcontext。
    3. 创建Spring容器:ApplicationContext context
    4. 从类路径下的一个或多个XML配置文件中加载应用上下文:ApplicationContext context = new ClassPathXmlApplicationContext("example.xml");

    Spring模块

    在Spring 5.0 中,Spring框架的发布版本包括了21个不同的模块,每个模块会有3个JAR文件(二进制类库、源码的JAR文件以及JavaDoc的JAR文件)Spring模块根据功能划分为6类不同的功能。

    1. Spring核心容器
      容器是Spring框架最核心的部分,它管理着Spring应用中bean的创建、配置和管理。包括bean工厂和应用上下文。还包括一些企业服务,如E-mail、JNDI访问、EJB集成与调度。所有的Spring模块都构建于核心容器之上。
    2. Spring的AOP模块
      与DI一样,AOP可以帮助应用对象解耦。借助于AOP,可以将遍布系统的关注点(例如事务和安全)从它们所应用的对象中解耦出来。
    3. 数据访问与集成
      Spring的JDBC和DAO(Data Access Object)模块抽象了样板式代码,并在多种数据库服务的错误信息之上构建了一个语义丰富的异常层。Spring的ORM模块对许多流行的ORM框架进行了集成,包括Hibernate、Java Persistence API、Java Data Object和iBATIS SQL Maps。
    4. Web与远程调用
      Spring能够与多种流行的MVC框架进行集成,同时,它的Web和远程调用模块自带了一个强大的MVC框架,有助于在Web层提升应用的松耦合水平。
    5. Instrumentation
      Spring的Instrumentation模块提供了为JVM添加代理(agent)的功能,使用场景非常有限。
    6. 测试
      Spring为使用JNDI、Servlet和Portlet编写单元测试提供了一系列的 mock对象实现。对于集成测试,该模块为加载Spring应用上下文中的bean集合以及与Spring上下文中的bean进行交互提供了支持。

    参考书籍

    《Spring IN ACTION》

  • 相关阅读:
    mysql数据库 详解
    0810 smarty
    抽象类
    Nginx 负载均衡策略
    Nginx 负载均衡配置和策略
    内置Web Server
    PHP运行方式
    MySQL create table 语法
    MySQL 索引的使用
    MySQL的 explain 解析
  • 原文地址:https://www.cnblogs.com/pycrab/p/9462385.html
Copyright © 2011-2022 走看看