Spring与Struts
来源:互联网 发布:mac版网络游戏 编辑:程序博客网 时间:2024/06/04 00:57
整合
开发步骤:
1.引入struts.jar相关文件
2.spring-core相关jar文件
3.spring-web支持jar包
配置:
struts.xml struts与action的映射
bean.xml Spring ioc容器配置
web.xml 核心过滤器,引入struts功能,初始化spring容器配置
AOP
业务代码与关注点代码分离的好处:
关注点写一次即可
开发者只需要关注核心业务
运行期间,执行核心业务代码时候动态植入关注点代码【代理】
代理
public class ProxyFactory{ //维护目标对象 private static Object target; private static Aop aop; //生成代理对象的方法 public static Object getProxyInstance(Object target_,Aop aop_){ target=target_; aop=aop_; return Proxy.newProxyInstance( target.getClass().getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler(){ @Override public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{ //执行重复代码 aop.begin(); //执行目标对象的方法 Object returnvalue=method.invoke(target,args); //执行重复代码 aop.commit(); return returnvalue; } }); } }
调用工厂方法,返回userDao代理后的对象
<bean id="userDao_proxy" class="cn.xxx.ProxyFactory" factory-metho="getProxyInstance"> <constructor-arg index="0" ref="userDao"><constructor-arg> <constructor-arg index="1" ref="aop"><constructor-arg> </bean>
注解方式实现AOP
spring-aop-3.2.5aopalliance.jaraspectjweaver.jaraspectjrt.jar如果是spring2.5的版本的jar,如果用jdk1.7可能会有问题需要升级aspectj组件,即使用aspectj-1.8.2版本中提供jar支持
开启扫描注解:
开启aop注解
指定切面类
@Component@Aspectpublic class Aop{ //指定切入点表达式,拦截哪些方法,即为哪些类生成代理对象 @Pointcut() @Pointcut("execution(* cn.itcast.e_myaop1.UserDao.save(..))") public void begin(){ System.out.println("开始事务"); } @Pointcut("execution(* cn.itcast.e_myaop1.UserDao.save(..))") public void commit(){ System.out.println("提交事务");}
阅读全文
0 0
- 整合Struts 与Spring
- 整合Struts 与Spring
- 整合Struts 与Spring
- struts与spring整合
- Spring与struts比较
- spring与struts整合
- Spring与Struts整合
- Spring与struts比较
- Spring与Struts结合
- Spring与Struts集成
- Spring与Struts集成
- Spring与Hibernate、Struts
- Spring与Struts整合
- Spring 与 struts
- struts与spring集成
- Spring与struts整合
- Spring与Struts整合
- struts与spring mvc
- C#中String s1 = null;String s2 = “” 的区别
- 信息安全快讯2017年8月第1期
- TypeAdapter介绍[L]
- -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法
- 常用对话框
- Spring与Struts
- CodeForces
- 一个很好用的圆形头像控件.
- Spring常见面试题
- OkHttp:Java 平台上的新一代 HTTP 客户端
- php内存泄露,系统缓存消耗?
- 游戏服务器开发都要学什么
- php 一个字符串中插入另外一个字符串的函数
- DUBBO报错 Forbid consumer