Spring主要是声明式事务,将所有东西变成一个个对象,Struts2主要是行为参数,用于各部分的跳转,hibernate主要是查询数据库,并且简化代码
Spring主要有两种方式进行,一种是通过配置文件,一种基于注解。不过在整合框架的时候通过配置文件比较常见
利用切面的方法给文件添加前置通知,有利于人们的理解
运用通配符的方式给予方便
后置通知无论结果是否异常都会抛出
环绕通知并不是最常用,但是代码量最少
@Around("execution(public int com.atguigu.spring.aop.ArithmeticCalculator.*(..))")
public Object aroundMethod(ProceedingJoinPoint pjd){
Object result = null;
String methodName = pjd.getSignature().getName();
try {
//前置通知
System.out.println("The method " + methodName + " begins with " + Arrays.asList(pjd.getArgs()));
//执行目标方法
result = pjd.proceed();
//返回通知
System.out.println("The method " + methodName + " ends with " + result);
} catch (Throwable e) {
//异常通知
System.out.println("The method " + methodName + " occurs exception:" + e);
throw new RuntimeException(e);
}
//后置通知
System.out.println("The method " + methodName + " ends");
return result;
}
可以使用@Order(2)注解指定切面的优先级,值越小优先级越高
使用@Pointcut来声明切入点表达式,后面的跟着它用就行
可以同xml文件对整个进行配置,引入aop标签
在spring中可以直接使用JdbcTemplate来对数据库进行增删改查
使用具名参数有利于维护,不用再去对应位置
可以通过继承的方式自定义异常(通过继承构造器的方式)
利用transaction来启用生命式事务,可以使事务一起进行 一起不进行
@Transactional里面含有事务,默认事务是REQUIRED
使用REQUIRES_NEW是开启新事务,与不是直接用的有点小差别
使用timeout可以指定强制回滚之前事务可以占用的时间,用来减少时间,不过一般没多大用处
基于xml文件可以自行配置事务,通常分为三个步骤,1.配置事务管理器2.配置事务属性3.配置事务切入点
配置Hibernate的SessionFactory实例:通过Spring提供的LocalSessionFactoryBean进行配置
使用hibernateProperties属性来配置Hibernate原生的属性
要将Struts2和Spring联合起来需要建立对应的监听器,服务类和bean对应的对象
可以在jsp中直接引用spring,通过如下配置
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(application);
//2.从IOC容器中得到bean
Person person = ctx.getBean(Person.class);
//3.使用bean
person.hello();
Spring通过行为的方式对struts2进行整合
通过配置两个spring文件来分别整合struts2和hibernate
可以在E:BaiduNetdiskDownloadSSH 框架struts-2.3.15.3docsWWdocs里面寻找对应的文件用于对照参看怎么写代码
当建立ssh整合的时候,从增删改查到服务再到行为是一种基本的方式
SpringMVC在注解中添加了控制器和前后映射
如果类定义了,要在最前面加上去
SpringMVC可以通过@PathVariable可以来映射URL中的占位符到目标方法的参数中