美文网首页
Java后台-Spring 概述-2020-12-08

Java后台-Spring 概述-2020-12-08

作者: 勇往直前888 | 来源:发表于2020-12-15 09:01 被阅读0次

    三层架构

    • A 表现层 web层 MVC是表现层的一个设计模型
    • B 业务层 service层
    • C 持久层 dao层

    控制反转

    IOC——Inversion of Control,指的是将对象的创建权交给 Spring 去创建。使用 Spring 之前,对象的创建都是由我们自己在代码中new创建。而使用 Spring 之后。对象的创建都是给了 Spring 框架。

    依赖注入

    DI——Dependency Injection,是指依赖的对象不需要手动调用 setXX 方法去设置,而是通过配置赋值。

    POJO编程模型

    plain ordinary java object,普通无规则Java对象

    image.png

    面向切面的程序设计

    Aspect Oriented Programming——AOP

    • 一个程序中跨越多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。有各种各样常见的很好的关于方面的例子,比如日志记录、声明性事务、安全性,和缓存等等。

    • 在 OOP 中模块化的关键单元是类,而在 AOP 中模块化的关键单元是方面。AOP 帮助你将横切关注点从它们所影响的对象中分离出来。

    • Spring 框架的 AOP 模块提供了面向方面的程序设计实现,可以定义诸如方法拦截器和切入点等,从而使实现功能的代码彻底的解耦出来。

    体系结构

    Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。

    image.png
    • JDBC 模块提供了 JDBC 抽象层,它消除了冗长的 JDBC 编码和对数据库供应商特定错误代码的解析。JDBC=Java Data Base Connectivity

    • ORM 模块提供了对流行的对象关系映射 API 的集成,包括 JPA、JDO 和 Hibernate 等。通过此模块可以让这些 ORM 框架和 spring的其它功能整合,比如事务管理。ORM=Object Relational Mapping

    • OXM 模块提供了对 OXM 实现的支持,比如 JAXB、Castor、XML Beans、JiBX、XStream 等。OXM=Object XML Mapping

    • JMS 模块包含生产(produce)和消费(consume)消息的功能。从 Spring 4.1 开始,集成了 spring-messaging 模块。JMS=Java Message Service

    Spring Bean

    被称作 bean 的对象是构成应用程序的支柱也是由 Spring IoC 容器管理的。bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象。这些 bean 是由用容器提供的配置元数据创建的。

    image.png
    • Singleton 是单例类型,就是在创建起容器时就同时自动创建了一个 bean 的对象,不管你是否使用,他都存在了,每次获取到的对象都是同一个对象。Singleton 作用域是 Spring 中的缺省作用域。
    <!-- A bean definition with singleton scope -->
    <bean id="..." class="..." scope="singleton">
        <!-- collaborators and configuration for this bean go here -->
    </bean>
    
    • Prototype 是原型类型,它在我们创建容器的时候并没有实例化,而是当我们获取bean的时候才会去创建一个对象,而且我们每次获取到的对象都不是同一个对象。
    <!-- A bean definition with singleton scope -->
    <bean id="..." class="..." scope="prototype">
       <!-- collaborators and configuration for this bean go here -->
    </bean>
    
    • Bean的生命周期可以表达为:Bean的定义——Bean的初始化——Bean的使用——Bean的销毁

    • 在基于 XML 的配置元数据的情况下,你可以使用 init-method 属性来指定带有 void 无参数方法的名称。

    <bean id="exampleBean" 
             class="examples.ExampleBean" init-method="init"/>
    
    public class ExampleBean {
       public void init() {
          // do some initialization work
       }
    }
    
    • 在基于 XML 的配置元数据的情况下,你可以使用 destroy-method 属性来指定带有 void 无参数方法的名称。
    <bean id="exampleBean"
             class="examples.ExampleBean" destroy-method="destroy"/>
    
    public class ExampleBean {
       public void destroy() {
          // do some destruction work
       }
    }
    
    • 如果你有太多具有相同名称的初始化或者销毁方法的 Bean,那么你不需要在每一个 bean 上声明初始化方法和销毁方法。框架使用 元素中的 default-init-method 和 default-destroy-method 属性提供了灵活地配置这种情况。
    <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-3.0.xsd"
        default-init-method="init" 
        default-destroy-method="destroy">
    
       <bean id="..." class="...">
           <!-- collaborators and configuration for this bean go here -->
       </bean>
    
    </beans>
    

    参考文章

    Spring 概述

    相关文章

      网友评论

          本文标题:Java后台-Spring 概述-2020-12-08

          本文链接:https://www.haomeiwen.com/subject/xvfvgktx.html