12、BeanFactory常用的实现类有哪些?
Bean工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从正真的应用代码中分离。常用的BeanFactory实现有DefaultListableBeanFactory、XmlBeanFactory、ApplicationContext等。XMLBeanFactory,最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory,它根据XML文件中的定义加载beans。该容器从XML文件读取配置元数据并用它去创建一个完全配置的系统或应用。
13、解释SpringJDBC、SpringDAO和SpringORM?
Spring-DAO并非Spring的一个模块,它实际上是指示你写DAO操作、写好DAO操作的一些规范。因此,对于访问你的数据它既没有提供接口也没有提供实现更没有提供模板。在写一个DAO的时候,你应该使用@Repository对其进行注解,这样底层技术(JDBC,Hibernate,JPA,等等)的相关异常才能一致性地翻译为相应的DataAccessException子类。
Spring-JDBC提供了Jdbc模板类,它移除了连接代码以帮你专注于SQL查询和相关参数。Spring-JDBC还提供了一个JdbcDaoSupport,这样你可以对你的DAO进行扩展开发。它主要定义了两个属性:一个DataSource和一个JdbcTemplate,它们都可以用来实现DAO方法。JdbcDaoSupport还提供了一个将SQL异常转换为SpringDataAccessExceptions的异常翻译器。
Spring-ORM是一个囊括了很多持久层技术(JPA,JDO,Hibernate,iBatis)的总括模块。对于这些技术中的每一个,Spring都提供了集成类,这样每一种技术都能够在遵循Spring的配置原则下进行使用,并平稳地和Spring事务管理进行集成。
对于每一种技术,配置主要在于将一个DataSourcebean注入到某种SessionFactory或者EntityManagerFactory等bean中。纯JDBC不需要这样的一个集成类(JdbcTemplate除外),因为JDBC仅依赖于一个DataSource。
如果你计划使用一种ORM技术,比如JPA或者Hibernate,那么你就不需要Spring-JDBC模块了,你需要的是这个Spring-ORM模块。
14、简单介绍一下SpringWEB模块?
Spring的WEB模块是构建在applicationcontext模块基础之上,提供一个适合web应用的上下文。这个模块也包括支持多种面向web的任务,如透明地处理多个文件上传请求和程序级请求参数的绑定到你的业务对象。它也有对JakartaStruts的支持。
15、Spring配置文件有什么作用?
Spring配置文件是个XML文件,这个文件包含了类信息,描述了如何配置它们,以及如何相互调用。
16、什么是SpringIOC容器?
IOC控制反转:SpringIOC负责创建对象,管理对象。通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。
17、IOC的优点是什么?