zoukankan      html  css  js  c++  java
  • Spring常见面试题

    1、Spring框架有什么好处?

    1. 简化开发,DI依赖关系一目了然,IOC容器管理好系统中的Bean
    2. 兼容成熟的框架,Hibernate、MyBatis、Shiro、各种数据类型访问框架
    3. 模块化设计,即插即用,按需分配
    4. 自带测试组件
    5. 声明式事务,将非功能性代码和功能性代码分离,事务管理提前声明
    6. 过度设计嫌疑,完美分离了Servlet和普通Bean

    2、BeanFactory和ApplicationContext的区别

    ApplicationContext是BeanFactory的子接口,扩展了BeanFactory的方法;beanFactory的关键方法 getBean();
    ApplicationContext

    1. 提供了对IOC容器中Bean的监控,生命周期 PostProcessor会在Bean创建,销毁的时候触发事件
      Aware

    ApplicationEvent
    ContextRefreshedEvent
    ContextStartedEvent
    ContextStopedEvent
    2. 支持国际化i18n
    3. 扩展了统一资源文件读取方式URL,可以是本地URL,也可以是网络URL
    ClassPathXmlApplicationContext
    FileSystemXmlApplication
    XmlWebApplicationContext网络文件
    AnnotationConfigApplicationContext

    3、请解释Bean的生命周期

    建立在Spring的监听机制

    1. InitializingBean DisposableBean用来回调
    2. Aware接口
    3. init() destroy()
    4. @PostConstruct 和 @PreDestroy

    4、Spring Bean个作用域之间的区别?

    总共5个范围,对象什么时候创建,什么时候销毁。
    SpringBean 有5种生命

    1. 什么时候用,什么出生,用完就死(prototype)
    2. 从容器启动就产生,直到Spring销毁。(Singleton)
      web层
    3. request出生的时候就出生,request销毁的时候就销毁
    4. session出生的时候就出生,session销毁的时候就销毁
    5. global-session Context(上下文)

    5、Spring中的Bean是线程安全的吗?

    Spring Bean由IOC容器来创建,创建的对象由开发人员写的。
    BeanDefinition BeanWrapper instance Class.newInstance(); new Object()
    Map<String,BeanWrapper>做了一次代理,用一个新的类代替了原来的类。
    Bean安不安全跟我们写的代码有关系,跟Spring无关。

    6、Spring框架中常用的设计模式

    工厂模式;
    策略模式;
    模板模式;
    代理模式;

    7、Spring是怎样处理循环依赖问题的

    缓存机制解决循环依赖的问题,首先初始化可以创建的,第二次重新赋值

    8、BeanFactory和FactoryBean的区别

    9、怎样从Service中获取ApplicationContext

    实现ApplicationContextAware接口

  • 相关阅读:
    Request Validation in ASP.NET
    ANSI、Unicode、Unicode big endian、UTF8编码
    在win7下安装SQL sever2005
    配置SQL Server 2005 以允许远程连接
    传统网站与Web标准——DIV+CSS布局实例
    打造自己的reset.css
    传统网站与Web标准——表格布局实例
    每天工作4小时的程序员
    良好的XHTML规则
    列表导航栏实例(02)——精美电子商务网站赏析
  • 原文地址:https://www.cnblogs.com/nangonghui/p/12926634.html
Copyright © 2011-2022 走看看