zoukankan      html  css  js  c++  java
  • Spring基础知识

    由于之前对Sping框架没有整体的了解,对基础知识有很大的缺失。
    为了打好基础对一些基本概念进行总结

    1. 什么是POJO?

    POJO(Plain Old Java Object)从字面上翻译为“简单老式的java对象”或者 “普通java类”
    POJO是指:那些没有继承任何类、也没有实现任何接口,更没有被其它框架侵入的Java对象。
    POJO规范

    • 所有属性都必须是private
    • 所有外部访问必须通过setter、getter
    • 不能有extend
    • 不能有implments
    • 不能包含预定注解,如@Entity public class Hello

    2. 什么是JavaBean?

    JavaBean是一种JAVA语言写的可重用组件。JavaBean符合一定规范写的Java类,是一种规范。它的方法命名,构造以及行为必须符合特定的要求:

    • 所有属性为private
    • 这个类必须具有一个公共的(public)无参构造函数
    • private属性必须提供public的getter和setter来给外部访问,并且方法的命名也必须遵循一定的命名规范
    • 这个类是可序列化的,要实现serializable接口

    3. 什么是SpringBean?

    SpringBean是受Spring管理的对象 所有能受Spring容器管理的对象都可以成为SpringBean.
    在 Spring 中,Bean 的创建是由 Spring 容器进行的,也就是说,在 Spring 中使用 Bean 的时候,不是由关键字 New 来创建实例了。
    Spring中Bean装配方式:自动装配、使用 XML 装配、使用 Java 装配

    4. Spring Bean与JavaBean区别?

    • 规范:Spring容器对Bean没有特殊要求,JavaBean需要满足一定规范
    • 用处:JavaBean更多地作为值传递参数,SpringBean无处不在
    • 声明周期:JavaBean声明周期,由new实例化后使用,该Bean不在使用后有Java自动回收垃圾;SpringBean由Spring容器管理。

    5. 什么是Spring容器?

    • 从概念上讲:Spring 容器是 Spring 框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。
      在java项目中,我们使用实现了org.springframework.context.ApplicationContext接口的实现类。在web项目中,我们使用spring.xml——Spring的配置文件。
    • 从代码上讲:一个Spring容器就是某个实现了ApplicationContext接口的类的实例。也就是说,从代码层面,Spring容器其实就是一个ApplicationContext(一个实例化对象)。

    6. 什么是依赖注入DI

    is a :是一个:继承 has a :有一个 成员变量,依赖。
    注入:通过setter方法进行另一个对象实例设置。

    7. Spring中Bean的作用域?

    • singleton 在: 在spring IoC容器仅存在一个Bean实例,Bean以单例方式存在,默认值
    • prototype: 每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行newXxxBean() ;。Prototype是原型类型,它在我们创建容器的时候并没有实例化,而是当我们获取bean的时候才会去创建一个对象,而且我们每次获取到的对象都不是同一个对象
    • request :request只适用于Web程序,每一次 HTTP 请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效,当请求结束后,该对象的生命周期即告结束。
    • seesion :同一个HTTP Session共享一个Bean,不同Session使用不同的Bean,仅适用于WebApplicationContext环境
    • global-session: 一般用于Portlet应用环境,该运用域仅适用于WebApplicationContext环境

    8. Spring中Bean的生命周期?

    生命bean ->初始化 ->使用 ->摧毁
    实例化过程 ---:实例化bean对象->设置对象属性->检查Aware相关接口并设置相关依赖->BeanPostProcessor前置处理
    ->检查是否是InitializingBean以决定是否调用afterPropertiesSet方法->检查是否有配置自定义的init-method
    ->BeanPostProcessor后置处理->注册必要的Destruction相关回调接口->使用中
    ->是否实现DisposableBean接口->是否配置有自动以的destroy方法。

  • 相关阅读:
    css3 object-fit详解
    Timing path
    IUS
    FIFO深度
    UVM中的class--2
    UVM中的class
    Binding
    Concurrent Assertion
    Immediate assertion
    sdf
  • 原文地址:https://www.cnblogs.com/0ffff/p/11370222.html
Copyright © 2011-2022 走看看