AspectJ с JSF1.2

Я использую структуру JSF1.2. Я не интегрировал свое приложение с Spring. Я хочу выполнять профилирование при вызовах методов. мой файл приложения - EAR (EJB + WAR). я могу получить время выполнения методов сеансовых компонентов с помощью перехватчика, но для модуля WAR мне было предложено использовать AspectJ в этом блоге. поэтому я написал код. есть ли что-то, что мне нужно сделать, например детали конфигурации. Я добавил необходимый jar-файл AspectJ. JSF поддерживает AspectJ с любой конфигурацией? мой код:

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
@Aspect
public class AopInterceptor implements MethodInterceptor{

public AopInterceptor() {
}

@Pointcut("execution (* *.*(..))")
public void profile(){}

@Around("profile()")
public Object invoke(MethodInvocation mi) throws Throwable {
    System.out.println("test start");
    Object obj=mi.proceed();
    System.out.println("test end");
    return obj;
 }
}

person sridhar kosna    schedule 14.10.2011    source источник
comment
Пожалуйста, не ставьте [closed] в названиях вопросов. Спасибо.   -  person Robert Harvey    schedule 15.10.2011
comment
Я создал цель в файле WAR build.xml и добавил файлы jar AspectJ. Теперь я получаю все вызываемые методы. вот код цели:   -  person sridhar kosna    schedule 21.10.2011


Ответы (1)


Я создал цель в файле WAR build.xml и добавил файлы jar AspectJ. Теперь я получаю все вызываемые методы. вот код цели:

 <taskdef  classpath="C:/Users/s.kosna/Downloads/aspectj-1.6.11/lib/aspectjtools.jar"
 resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties"/>
<target name="aspectj">
<echo level="info">--- aspectj (start) ---</echo>
<condition property="targetos" value="windows" else="unix">
    <os family="windows"/>
</condition>
<pathconvert targetos="${targetos}" property="javac.convertedClasspath" >
    <path path="${javac.classpath}" />
</pathconvert>
<iajc source="1.6" target="1.6" showweaveinfo="true" verbose="true" destdir="${build.classes.dir}"  >
    <inpath>
        <pathelement location="${build.classes.dir}"/>
    </inpath>
    <classpath>
        <pathelement location="${javac.convertedClasspath}" />
    </classpath>
</iajc>
<echo level="info">LORDDOSKIAS BRUTAL TEST ---</echo>
</target>

<target name="-post-compile" depends="aspectj"></target>

поместите приведенный выше код в один пакет и добавьте приведенный выше скрипт ant в файл war build.xml, вот и все, он будет работать

person sridhar kosna    schedule 21.10.2011