`

SSH学习记录(4)-AOP测试

阅读更多
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">

分享到:
评论
1 楼 lel08090 2008-11-03  
思路很明朗啊

相关推荐

    SSH经典学习案例-宠物管理系统

    同时,Spring的AOP功能可以用于日志记录、事务管理等跨切面关注点。 Struts作为MVC(Model-View-Controller)框架,负责处理HTTP请求,控制应用程序的流程,并将数据展示给用户。在宠物管理系统中,Struts定义了...

    ssh添加aop配置

    在SSH框架中添加AOP配置可以实现如日志记录、事务管理、性能监控等实用功能。本实例将详细介绍如何在SSH项目中进行AOP配置,以便在一个或多个方法上应用。 首先,了解AOP的基本概念。AOP是一种编程范式,旨在提高...

    Test-SSH2-Model-2012

    4. **日志文件**:记录了开发和运行过程中的调试信息。 5. **Web应用结构**:如WEB-INF目录下的web.xml,定义了Web应用的部署描述符。 这个项目模型可以帮助开发者了解如何将这三个框架整合在一起,实现MVC架构,...

    ssh+aop+log4j+日志拦截器+注解

    标题中的"ssh+aop+log4j+日志拦截器+注解"涉及到的是Java Web开发中的几个核心组件和技术,这些技术在构建大型、分布式的企业级应用时常常被使用。下面将详细介绍这些知识点: 1. SSH (Spring, Struts, Hibernate)...

    SSH经典项目源码--论坛

    此外,Spring的AOP可以用于日志记录、权限验证等横切关注点。 Hibernate作为ORM(对象关系映射)工具,使得开发者可以通过Java对象直接操作数据库,无需编写SQL。它简化了数据持久化的过程,提高了开发效率。在论坛...

    ssh整合jar包-4.3.9.zip

    Spring 4.3.9版本中,它包含了IoC容器、数据访问/集成、Web、AOP、工具类和测试模块。Spring的IoC容器管理对象的生命周期和依赖关系;数据访问/集成模块支持JDBC、JPA、MyBatis等;Web模块则用于构建Web应用,如...

    韩顺平.SSH框架视频教程-项目实战-校内网(含源代码、设计文档、关系图和数据库脚本)

    通过这个视频教程,学习者不仅能够掌握SSH框架的使用,还能了解到实际项目开发中的最佳实践,如如何组织代码、如何进行单元测试、如何优化性能等。这将对提升开发者解决实际问题的能力大有裨益。同时,跟着韩顺平...

    ssh学习笔记

    根据提供的文件信息,可以看出这份学习笔记主要关注于SSH(Struts、Spring 和 Hibernate)框架的配置与使用。接下来,我们将详细解析这些知识点。 ### 一、Spring 框架依赖 Spring 是一个开源的轻量级Java开发框架...

    SSH整合jar包-spring5.0+hibernate5.1+struts2.5

    这三个框架分别负责不同的职责:Spring作为应用的基石,提供依赖注入(DI)和面向切面编程(AOP),以及事务管理;Hibernate则作为持久层框架,处理数据库操作;而Struts2作为表现层框架,负责处理用户请求和展示...

    ssh_web开发测试程序学习笔记

    这个“ssh_web开发测试程序学习笔记”涵盖了使用这三个框架进行Web开发和测试的基本概念、步骤和最佳实践。 Struts2是MVC(Model-View-Controller)设计模式的一个实现,它提供了强大的表单处理、国际化、异常处理...

    SSH开发示例项目--客户关系管理系统

    通过这个示例项目,开发者可以学习如何在实际项目中整合SSH框架,理解它们之间的协作方式,以及如何构建和配置一个完整的CRM系统。同时,这也是一个很好的实践平台,能够提升开发者在Java Web开发领域的技能和经验。

    java SSH框架架构学习_笔记.struts,spring,hibernate. IOC,AOP,JDBC,编写个留言管理系统网站

    本笔记主要围绕这三个框架进行深入学习,结合IOC(Inversion of Control,控制反转)、AOP(Aspect-Oriented Programming,面向切面编程)以及JDBC(Java Database Connectivity,Java数据库连接)技术,帮助读者...

    SSH绿色健康购物网 -源码.zip

    Spring框架是核心,它提供了依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP),这两个特性有助于减少代码间的耦合,提高可测试性和可维护性。Spring还包含了对数据库访问的...

    SSH-框架笔记

    学习SSH框架笔记,不仅可以掌握这三个框架的基本用法,还能深入理解Java Web开发中的设计原则和最佳实践。这份笔记内容广泛,包括各个框架的主要概念、配置、API使用、实战案例等,对于提升Java开发技能大有裨益。

    ssh2综合实例-免费电子商务平台.rar

    10. **测试与部署**:SSH2框架具有良好的测试支持,例如Spring的单元测试和集成测试。此外,Spring Boot和Maven等工具简化了项目的部署和打包过程,使开发者能更专注于业务逻辑。 综上所述,SSH2框架在免费电子商务...

    SSH框架整合实战教程----读书笔记(七)源码

    SSH框架整合实战教程读书笔记(七)主要聚焦于Spring、Struts和Hibernate这三大Java Web开发框架的集成应用。在本教程中,我们将深入探讨如何将这三个强大的工具结合在一起,以构建高效、可维护的Web应用程序。源码...

    SSH-Apply-to-SCMS.zip_SSH文档管理

    - **测试调试**:单元测试、集成测试和系统测试,确保功能正确无误。 - **部署上线**:配置服务器环境,发布应用,进行性能调优。 **SSH文档管理** SSH文档管理主要关注如何在开发过程中有效地组织、存储和检索...

    SSH整合示例-薛小冉原创

    6. 测试与调试:在SSH整合项目中,单元测试和集成测试是必不可少的。开发者可以使用JUnit测试Action、Service和DAO层的功能,确保每个部分都正常工作。此外,利用Eclipse、IntelliJ IDEA等IDE的调试工具,可以方便地...

    SSH整合jar包--spring4.1.5 hibernate4.3.1 struts2.2.1

    此外,Spring的依赖注入和AOP(面向切面编程)功能使得代码更易于测试和维护。 2. **Hibernate框架**(4.3.1版本):Hibernate是Java领域的一款强大持久化框架,它简化了数据库操作,将对象关系映射(ORM)技术推向...

Global site tag (gtag.js) - Google Analytics