1.Spring的AOP理解
AOP(Aspect Oriented Programming)一般称为面向切面编程,用于将那些与业务无关、但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块就叫做“切面”。AOP减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。
2.Spring的IoC理解
IoC(Inversion of Control)是控制反转,是指创建对象的控制权的转移,以前创建对象的主动权和时机是由自己把控的,而现在这种权力转移到Spring容器中,并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系。DI依赖注入,和控制反转是同一个概念的不同角度的描述,即应用程序在运行时依赖IoC容器来动态注入对象需要的外部资源。
最直观的表达是,IoC让对象的创建不用去new了,可以由Spring自动生产,使用Java的反射机制,根据配置文件在运行时动态的去创建对象以及管理对象,并调用对象的方法。
Spring的IoC有三种注入方式:构造器注入、setter方法注入,根据注解注入。
3.BeanFactory和ApplicationContext有什么区别?
答:BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当作Spring的容器。其中ApplicationContext是BeanFactory的子接口。
(1)BeanFactory:是Spring里面最底层的接口,包含了各种bean的定义,读取bean配置文档,管理bean的加载、实例化,控制bean的生命周期,维护bean之间的依赖关系。ApplicationContext除了提供BeanFactory所具有的功能外,还提供了更完整的框架功能。
(2)①BeanFactroy采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化。
②ApplicationContext,它是在容器启动时,一次性创建了所有的Bean。
③相对于基本的BeanFactory,ApplicationContext唯一的不足是占用内存空间。当应用程序配置Bean较多时,程序启动较慢。
4.什么是Spring MVC ?简单介绍下你对springMVC的理解?
答:Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,它是Spring的一个模块,无需中间整合层来整合。在web模型中,MVC是一种很流行的框架,通过把Model、View、Controller分离,把较为复杂的web应用分为逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
5.Hibernate
答:Hibernate是一个基于JDBC的主流持久化框架,对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。