Java S2SH框架整合

来源:互联网 发布:php的des加密解密 编辑:程序博客网 时间:2024/06/15 13:57

整合后的写程序顺序:

           谁能先测试先写谁

Struts2:业务逻辑数据传输

Hibernate:数据持久化

Spring:依赖注入控制反转

Spring

IOC(控制反转)

概念

       把对象的创建、初始化、销毁等工作交给spring容器来做

创建对象

构造函数(用的最多)

DI(依赖注入)

注解

概念

1、 用来解释说明

2、 注解必须作用在类的某一个部分

3、 注解的作用域范围(java,class,jvm)

4、 注解解析器

流程分析

1、 启动spring容器

2、 Spring容器解析类扫描的注解解析器,在base-package指定的包及子包中查找所有的类

3、 查看哪些类上面是否含有@Component注解

4、 如果该注解的value的属性的值为空,则把类名的第一个字母变成小写,作为id值,放入到spring容器中

5、 如果该注解的value的属性的值不为空,则用value的属性的值作为id值,放入到spring容器中

6、 再次查找在spring容器中的类的所有的属性,按照@Resource的规则给属性赋值

Aop

代理模式

切面

       事务、日志、安全性的框架,权限等就是切面

通知

       切面中的方法就是通知

切入点

       只有符合切入点的条件,才能让通知和目标方法结合在一起

织入

       形成代理对象方法体的过程

切入点表达式

通知

前置通知

在目标方法执行之前执行。

后置通知

       在目标方法执行之后执行

       可以获取目标方法的返回值

       当目标方法遇到异常,不执行

最终通知

       无论目标方法是否遇到异常都会执行,相当于代码中的finnaly

异常通知

       获取目标方法抛出的异常

环绕通知

       能够控制目标方法的执行

目标类

从配置中可以看出,把service层所有的类当成目标类,只要service层所有的类的所有的方法抛出异常,则exceptionAspect中的异常通知就会获取到目标方法抛出的异常,所以在这里异常通知就是用来处理异常的,而且只有一个方法。并且该切面和所有的其他类都是松耦合的。

Spring的声明式事务处理

概念

       程序员不再负责处理事务,事务处理交给spring容器来做。

具体的详解

程序员负责两个内容:

1、  对表的crud操作:目标类的目标方法

2、  告诉spring容器什么样的目标方法采用什么样的事务策略

Spring容器负责:(切面)

     负责事务的处理

实现原理     

       采用了aop技术来实现的。

Spring与hibernate

组成

1、 hibernate的配置文件

2、 持久化类和映射文件

3、 Dao层和service层所有的类

4、 Spring的配置文件

5、 客户端

Spring与hibernate

组成

1、 hibernate的配置文件

2、 持久化类和映射文件

3、 Dao层和service层所有的类

4、 Spring的配置文件

5、 客户端

Action与service要做到完全的松耦合,所以在action中的service必须由spring容器进行注入,那么要完成该注入,action必须在spring容器中。所以action必须由spring容器产生。

1、 为了松耦合action与service,service与dao,使用了ioc和di

2、 为了不让程序员接触到事务,使用了声明式的事务处理

3、 有可能会用springaop处理权限、日志等内容

数据库的操作由hibernate充当

1、 mvc的作用

2、 使用插件的机制使得struts2与spring整合在一起了,实际上就是把

Struts2中的action交给spring处理了。








































0 0
原创粉丝点击