Spring有7大模块构成:Core模块,AOP模块,ORM模块,DAO模块,Web模块,Context模块,mvc模块。
1. Core模块主要功能实现了反向控制(Inversion of Control)与依赖注入DI(Dependency Injection),Bean配置以及加载。
2. AOP模块是Spring的另一个重要特征。拦截器(Interceptor)就是AOP的一个实现。拦截器配置时,在组装各类对象时必须使用Spring的代理类-ProxyFactoryBean。借助于Spring的代理类,把拦截器安装到NameMatchMethodPointcutAdvisor中,把自定义的Service安装到ProxyFactoryBean中,然后组装在一块。
3. DAO模块对JDBC等DAO层支持。
通过继承JdbcDaoSupport类,自动维护Connection,Statement等,代码中用Spring封装好的JdbcTemplate来执行Sql,查询。
Spring applicationContext.xml中需要配置一个数据源。
Spring使用DataSourceTransactionManager作为JDBC的事务管理者,同时把被管理的对象使用TransactionProxyFactoryBean配置,这是一个事务代理Bean。使用IoC,AOP等注入事务管理代码。
4. ORM模块:
通过继承HibernateDaoSupport类,封装了Hibernate,提供了HibernateTemplate对象。进行实体类的操作。
在Spring applicationContext.xml中需要配置Hibernate ,需要配置数据源,SessionFactory 及 Impl类 并配置实体类。
使用HibernateTransactionManager作为Hibernate的事务管理者,使用代理类TransactionProxyFactoryBean配置被管理者。
《!--事务管理器》
《!--事务管理规则》
《!--事务工厂代理类》
5.Web模块:
整合Struts 1 有俩种方式:继承和代理方式。
继承方式只需要继承ActionSupport即可。缺点是Action代码与Spring发生了耦合。
代理方式需要在struts-config.xml中添加一个<controller/>配置。processorClass属性配置为Spring的代理类。该配置会把Struts的action交给Spring处理。就可以为Action配置拦截器。
整合Struts 2
在struts.xml中增加<constant/> 。在spring 配置文件中配置action.