Java面试题之Spring(三)
1.解释Spring JDBC 。Spring DAO 和Spring ORM
Spring-DAO并非Spring的一个模块,它实际上是指示你写DAO操作,写好DAO操作的一些规范。因此对于访问你的数据它既没有提供接口也没有提供实现更没有提供模板,在写一个DAO的时候,你应该使用@Repository 对其进行注解,这样底层技术(JDBC,Hibernate,JPA,等等)的相关异常才能一致性地翻译为响应的DataAccessException子类
Spring-JDBC 提供了jdbc模板类,它移除了连接代码以帮助你专注于SQL查询和相关参数,Spring-JDBC还提供了一个JdbcDaoSupport
这样你可以对你的Dao进行扩展开发,它主要定义了两个属性一个DataSource和一个JdbcTemplate他们都可以实现DAO方法,JdbcDaoSupport还提供了一个将SQL异常转换为Spring DataAccessExceptions 的异常翻译器
Spring-ORM 是一个囊括了很多持久层技术(JPA,JDO,Hibernate,iBatis)的总括模块,对于这些技术中的每一个,Spring都提供了集成类。这样每一种技术都能够在遵循Spring的配置原则在进行使用,并平稳地和Spring事务管理进行集成。
对于每一种技术,配置主要在于将一个DataSource bean注入到某种SessionFactory或EntityManagerFactory等Bean中,纯JDBC不需要的一个集成类,因为JDBC金依赖一个DataSource
如果你计划使用一种ORM技术,比如JPA或者HIbernate 那么你就不需要Spring-JDBC模块你需要的是这个 Spring-ORM模块
2.简单的介绍一下Spring WEB模块。
Spring 的WEB模块是构建在application Context模块基础之上,提供一个适合wen应用的上下文,这个模块也包括支持多种面向web的任务。如透明地处理多个文件上传请求和程序级请求参数的绑定到你的业务对象,它也有Jakarta Struts 的支持。
3.Spring 配置文件有什么作用
Spring配置文件是个XML文件,这个文件包含了类信息,描述了如何配置他们,以及如何相互调用
4.IOC的优点
IOC或依赖注入把应用的代码量降低,它使应用容易测试,单元测试不再需要单例和JNDI查找机制,最小的代价和最小的侵入性使松散耦合得以实现,IOC容器支持加载服务时的饿汉式初始化和懒加载。
5.有哪些不同的IOC(依赖注入)方式?
Spring 提供了多种依赖注入的方式,
1.Set注入
2.构造器注入
3.静态工厂的方法注入
4.实例工程的方法注入
6.什么是Spring beans?
Spring beans是那些形成Spring 应用的主干的java对象,它们被Spring IOC容器初始化,装配和管理。这写Beans通过容器中配置的元数据创建,比如,xml文件中<bean />的形式定义
Spring 框架定义的beans都是单例beans。