1. 页面加入提交到logLogic方法的按钮
<form action="aopAction!logLogic.action" method="post">
<input type="submit" value="Submit to aopAction!logLogic"/>
</form>
2. AOPAction中加入logLogic方法。Action和Logic 都复制一份2,测试aop。页面加入提交aopAction2的logLogic的按钮。
public String logLogic(){
logic.print();
return SUCCESS;
}
3. Logic 改为接口实现,便于使用Spring配置aop。
4. 配置好struts.xml和applicationContext.xml.
struts加入一个Action2
<action name="aopAction2" class="aopAction2">
</action>
spring也加入2
<bean id="aopAction2" class="com.zhch.action.AOPAction2">
<property name="logic" ref="aopLogic2"/>
</bean>
<bean id="aopLogic2" class="com.zhch.logic.AOPLogicImpl2"/>
5. aop的内容:
5.1 写接口的拦截器。
package com.zhch.interceptor;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class AOPInterceptor implements MethodInterceptor {
// invoke方法返回调用的结果
public Object invoke(MethodInvocation invocation) throws Throwable {
String methodName = invocation.getMethod().getName();
System.out.println("Before name:"+methodName);
Object result = invocation.proceed();
System.out.println("After name:"+methodName);
return result;
}
}
5.2 applicationContext.xml中配置interceptor和aop代理。
<!-- interceptor -->
<bean id="aopInterceptor"
class="com.zhch.interceptor.AOPInterceptor">
</bean>
<!-- ProxyBean -->
<bean id="aopLogicProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>com.zhch.logic.AOPLogic</value>
</property>
<property name="target" ref="aopLogic"/>
<property name="interceptorNames">
<list>
<value>aopInterceptor</value>
</list>
</property>
</bean>
5.3 action中的logic引用代理。
<bean id="aopAction" class="com.zhch.action.AOPAction">
<property name="logic" ref="aopLogicProxy"/>
</bean>
6. 第二个Logic的配置方法也相同。
7. 如果有许多个Bean要代理的话,这样配置会很麻烦,可以用BeanNameAutoProxyCreator来自动代理。
8. 用BeanNameAutoProxyCreator代理。
8.1 将原来的<!-- ProxyBean -->删除。
8.2 配置BeanNameAutoProxyCreator。
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Logic</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>aopInterceptor</value>
</list>
</property>
</bean>
8.3 Action中还是引用原来的Logic的Bean的名字。
8.4 多个配置文件中的符合名字正则的都会被代理。
总结:
1. 用ProxyFactoryBean
1.1 接口和它的实现类都有了,写好。
1.2 写接口的拦截器
1.3 在spring中配置拦截器和代理,别的类引用就好了。
2. 用BeanNameAutoProxyCreator
2.1 接口和它的实现类都有了,写好。
1.2 写接口的拦截器
1.3 在spring中配置拦截器和代理,这里引用Bean还是引用原来的Bean就可以了,
BeanNameAutoProxyCreator会自动代理符合它名字正则表达式的bean。
附加1. Spring多配置文件
在web.xml中加入context-param元素,给listener用。
用*表示多个,也可以直接写名字。
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml;
/WEB-INF/applicationContext-*.xml
</param-value>
</context-param>
附加2. struts2多配置文件
方法1.
在struts.xml中加入下面的文字就可以解决了
<include file="struts-default.xml">
<include file="struts_001.xml">
<include file="struts_002.xml">
如果是多级包含,主要的包含struts_001.xml,struts_001.xml包含struts_002.xml
则主要的里面是
<include file="struts_001.xml">
struts_001.xml里面是
<include file="struts_002.xml">
如果有多级目录则每一个包含都要写从class开始的全称目录
比如struts_001.xml,struts_002.xml都在com.zhch包中,主包含struts_001.xml,struts_001.xml包含struts_002.xml.
则主要里面是
<include file="com/zhch/struts_001.xml">
struts_001.xml里面是
<include file="com/zhch/struts_002.xml">
分享到:
相关推荐
同时,Spring的AOP功能可以用于日志记录、事务管理等跨切面关注点。 Struts作为MVC(Model-View-Controller)框架,负责处理HTTP请求,控制应用程序的流程,并将数据展示给用户。在宠物管理系统中,Struts定义了...
在SSH框架中添加AOP配置可以实现如日志记录、事务管理、性能监控等实用功能。本实例将详细介绍如何在SSH项目中进行AOP配置,以便在一个或多个方法上应用。 首先,了解AOP的基本概念。AOP是一种编程范式,旨在提高...
4. **日志文件**:记录了开发和运行过程中的调试信息。 5. **Web应用结构**:如WEB-INF目录下的web.xml,定义了Web应用的部署描述符。 这个项目模型可以帮助开发者了解如何将这三个框架整合在一起,实现MVC架构,...
标题中的"ssh+aop+log4j+日志拦截器+注解"涉及到的是Java Web开发中的几个核心组件和技术,这些技术在构建大型、分布式的企业级应用时常常被使用。下面将详细介绍这些知识点: 1. SSH (Spring, Struts, Hibernate)...
此外,Spring的AOP可以用于日志记录、权限验证等横切关注点。 Hibernate作为ORM(对象关系映射)工具,使得开发者可以通过Java对象直接操作数据库,无需编写SQL。它简化了数据持久化的过程,提高了开发效率。在论坛...
Spring 4.3.9版本中,它包含了IoC容器、数据访问/集成、Web、AOP、工具类和测试模块。Spring的IoC容器管理对象的生命周期和依赖关系;数据访问/集成模块支持JDBC、JPA、MyBatis等;Web模块则用于构建Web应用,如...
通过这个视频教程,学习者不仅能够掌握SSH框架的使用,还能了解到实际项目开发中的最佳实践,如如何组织代码、如何进行单元测试、如何优化性能等。这将对提升开发者解决实际问题的能力大有裨益。同时,跟着韩顺平...
根据提供的文件信息,可以看出这份学习笔记主要关注于SSH(Struts、Spring 和 Hibernate)框架的配置与使用。接下来,我们将详细解析这些知识点。 ### 一、Spring 框架依赖 Spring 是一个开源的轻量级Java开发框架...
这三个框架分别负责不同的职责:Spring作为应用的基石,提供依赖注入(DI)和面向切面编程(AOP),以及事务管理;Hibernate则作为持久层框架,处理数据库操作;而Struts2作为表现层框架,负责处理用户请求和展示...
这个“ssh_web开发测试程序学习笔记”涵盖了使用这三个框架进行Web开发和测试的基本概念、步骤和最佳实践。 Struts2是MVC(Model-View-Controller)设计模式的一个实现,它提供了强大的表单处理、国际化、异常处理...
通过这个示例项目,开发者可以学习如何在实际项目中整合SSH框架,理解它们之间的协作方式,以及如何构建和配置一个完整的CRM系统。同时,这也是一个很好的实践平台,能够提升开发者在Java Web开发领域的技能和经验。
本笔记主要围绕这三个框架进行深入学习,结合IOC(Inversion of Control,控制反转)、AOP(Aspect-Oriented Programming,面向切面编程)以及JDBC(Java Database Connectivity,Java数据库连接)技术,帮助读者...
Spring框架是核心,它提供了依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP),这两个特性有助于减少代码间的耦合,提高可测试性和可维护性。Spring还包含了对数据库访问的...
学习SSH框架笔记,不仅可以掌握这三个框架的基本用法,还能深入理解Java Web开发中的设计原则和最佳实践。这份笔记内容广泛,包括各个框架的主要概念、配置、API使用、实战案例等,对于提升Java开发技能大有裨益。
10. **测试与部署**:SSH2框架具有良好的测试支持,例如Spring的单元测试和集成测试。此外,Spring Boot和Maven等工具简化了项目的部署和打包过程,使开发者能更专注于业务逻辑。 综上所述,SSH2框架在免费电子商务...
SSH框架整合实战教程读书笔记(七)主要聚焦于Spring、Struts和Hibernate这三大Java Web开发框架的集成应用。在本教程中,我们将深入探讨如何将这三个强大的工具结合在一起,以构建高效、可维护的Web应用程序。源码...
- **测试调试**:单元测试、集成测试和系统测试,确保功能正确无误。 - **部署上线**:配置服务器环境,发布应用,进行性能调优。 **SSH文档管理** SSH文档管理主要关注如何在开发过程中有效地组织、存储和检索...
6. 测试与调试:在SSH整合项目中,单元测试和集成测试是必不可少的。开发者可以使用JUnit测试Action、Service和DAO层的功能,确保每个部分都正常工作。此外,利用Eclipse、IntelliJ IDEA等IDE的调试工具,可以方便地...
此外,Spring的依赖注入和AOP(面向切面编程)功能使得代码更易于测试和维护。 2. **Hibernate框架**(4.3.1版本):Hibernate是Java领域的一款强大持久化框架,它简化了数据库操作,将对象关系映射(ORM)技术推向...