1、了解Spring背景,什么是Spring?

     Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

也可以说Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

 * Spring是个容器,因为它包含并且管理应用对象的生命周期和配置,比如对象的创建、销毁、回调等

2、为什么要使用Spring框架,有什么优点? 

     Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用,并且使用基本的JavaBean代替EJB,并提供了更多的企业应用功能。

 *  EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。

优点:

轻量级的IOC和AOP容器框架。

非侵入式的,Spring应用中的对象不依赖于Spring的特定类。

       ③、Spring提供对事物的管理

        ④、Spring对主流的框架提供了很好的集成支持,比如与Hibernate、SpringMVC等框架的集成

3、Spring框架的七大模块组成:

组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:

  • Spring Core(核心容器):核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
  • Spring Context(Spring上下文):pring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
  • Spring AOP(面向切边编程):通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。
  • Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
  • Spring ORM:Spring 框架插入了若干个 ORM (对象关系映射)框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
  • Spring Web:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
  • Spring MVC:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

3、怎么理解Spring中IOC与AOP?

把原本我们去new的对象这个本应该有代码操作的程序交给Spring容器来执行了。

        Spring的五种注入方式 @Autowired:自动装配、setter 方法注入、构造器注入、静态工厂的方法注入、实例工厂的方                                                   法注入

       详情可以参考网站:

     AOP:面向切面编程,是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。其本质可以理解为是一种拦截器,比如:操作数据库的增删查改之前需要开始事务,增删查改后需要关闭事务,这样我们就可以写一个拦截器,底层就是采用动态代理实现前置通知和后置通知,在前置通知中开始事务,在后置事务中提交事务,在spring.xml中配置通知即可,这种Spring的事务管理底层就用到了AOP。

4、Spring如何配置数据库驱动

    ①、可以使用c3p0数据库连接池技术

    ②、使用DriverManagerDataSource数据源来配置数据库驱动