15、BeanFactory 和 ApplicationContext 有什么区别?
1、BeanFactory 是 Spring 的最底层接口,包含 bean 的定义,管理 bean 的加载,实例化,控制 bean
的生命周期,特点是每次获取对象时才会创建对象。
ApplicationContext 是 BeanFactory 的子接口,拥有 BeanFactory 的全部功能,并且扩展了很多高级
特性,每次容器启动时就会创建所有的对象。
ApplicationContext 的额外功能:
统一的资源文件访问方式;
提供在监听器中注册 bean;
同时加载过个配置文件;
2、BeanFactory 通常以编程的方式被创建,ApplicationContext 可以以声明的方式创建,如使用
ContextLoader。
3、BeanFactory 和 ApplicationContext 都支持 BeanPostProcessor,BeanFactoryPostProcessor,
但 BeanFactory 需要手动注册,ApplicationContext 则是自动注册。
16、什么是 JavaConfig?
JavaConfig 是 Spring3.0 新增的概念,就是以注解的形式取代 Spring 中繁琐的 xml 文件。
JavaConfig 结合了 xml 的解耦和 java 编译时检查的优点。
@Configuration,表示这个类是配置类;
@ComponentScan,相当于 xml 的<context:componentScan basepackage=>;
@Bean,相当于 xml 的<bean id="student" class="com.guor.entity">;
@EnableWebMvc,相当于 xml 的<mvc:annotation-driven>;
@ImportResource,相当于 xml 的<import resource="application-context-cache.xml">;
@PropertySource,用于读取 properties 配置文件;
@Profile,一般用于多环境配置,激活时可用@ActiveProfile("dev")注解;
17、什么是 ORM 框架?
ORM(Object-relational mapping),对象关系映射。
是为了解决面向对象与关系型数据库存在的不匹配问题。
ORM 框架的优点:
1. 开发效率更高
2. 数据访问更抽象、轻便
3. 支持面向对象封装,开发更简单更对象化、可移植更强。