• spring框架(2)


    Spring框架能带来哪些好处?

    Dependency Injction(DI)方法使得构造器和JavaBean properties文件中的依赖关系一目了然

    什么时控制反转(IOC)?什么是依赖注入?

    控制反转是一种以给予目标程序中目标组件更多控制为目标的设计模式,并在我们的实际工作中起到了有效的作用

    依赖注入:是在编译阶段尚未知所需的功能是来自哪个类的情况下,将其他对象所依赖的功能对象实例化的模式。这就需要一种机制用来激活相应的组件以提供特定的功能,所以依赖注入是控制反转的基础

    在java中依赖注入有以下几种方式:

    1。构造器注入

    2.Setter方法注入

    3.接口注入

    请解释一下Spring框架中的IOC?

    Spring中org.Springframework.beans包和org.Springframework.context包构成了Spring框架IOC容器的基础

    BeanFactory接口提供 了一个先进的配置机制,使得任何类型的对象的配置成为可能。ApplicationContext接口对BeanFactory接口实现的拓展。在BeanFactory接口的基础上添加了其他功能。比如与Springd AOP更容易集成。也提供了message resourced 机制(用于国际化)、事件传播以及应用层的特别配置,比如针对web应用的WebApplicationContext。org.Springframework.beans.BeanFactory是SpringIoc的具体实现,用来包装和管理前面提到的各种bean.BeanFactory接口是SpringIoc容器的核心接口

    BeanFactory和ApplicationContext的区别?

    BeanFactory可以理解为含有bean集合的工厂类。BeanFactory包含了多种Bean定义,以便在接收到客户端的请求时将对应的bean进行实例化

    BeanFactory还能在实例化对象时生成协作类之间的关系,此举将bean自生与bean客户端的配置中解放出来。BeanFactory还包含了对bean生命周期的控制,调用客户端的初始化方法和销毁方法

    从表面看,ApplicationContext和BeanFactory一样具有bean定义、bean关联关系的设置,根据请求分发bean的功能,但ApplicationContext在此基础上还增加了其他功能。

    1.提供了支持国际化的文本消息

    2.统一了资源文件读取方式

    3.已在监听器中注册的bean的事件

    Spring有一下三种配置方式:

    1.xml配置

    2.注解配置

    .java类配置

    解释Spring支持的几种bean的作用域

    Spring容器中的bean可以分为5个范围:

    1.singleton:默认,每个容器中只有一个bean的实例,单例的模式BeanFactory自生来维护

    2.prototype:为每个bean请求提供一个实例

    3.request:为每个网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器进行回收

    4.session:与request的范围类似,确保每一个seesion中有一个bean实例,在session过期后,bean会随之消失

    5.globe-session:全局作用域

    Spring的自动装配

    在spring中,对象无需自己查找或者创建与其关联的其他对象,有容器负责把需要相互协作的对象引用赋予各个对象,使用@Autowired来配置自动装在模式。在使用@Autowired注解之前需要在Spring配置文件中进行配置。<context:annotation-config/>。在启动SpringIoc时,容器自动装载一个AutowiredAnnotationBeanPostProcessor后置处理器,当扫描到@Autowired、@Resource、@Inject时就会在SpringIoc容器中查找需要的Bean,并装配给该对象的属性

    @Autowired和@Resource之间的区别:

    1.@Autowired默认时按照类型装配注入的,默认情况下它要求依赖对象必须存在

    2.@Resource默认时按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入

  • 相关阅读:
    SpringBoot中使用Redis
    SpringBoot中实现事务
    SpringBoot中集成持久层框架Mybatis
    JavaScript遍历数组、对象
    web面试(一)
    create-react-app初始化报错及配置less
    JavaScript异步(SuperAgent , isomorphic-fetch)
    JavaScript数组
    JavaScript(token,cookie)
    JavaScript时间段重叠
  • 原文地址:https://www.cnblogs.com/juddy/p/14070722.html
Copyright © 2020-2023  润新知