import org.syringe.annotation.Aspect;
import org.syringe.annotation.Before;
import org.syringe.annotation.Pointcut;
@Aspect
public class LoggingAspect {
@Pointcut("execution(* com.example.myapp.*.*(..))")
public void loggableMethods() {}
@Before("loggableMethods()")
public void beforeExecution() {
System.out.println("Before method execution: Logging...");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<aop:aspectj-autoproxy/>
<bean id="loggingAspect" class="com.example.myapp.LoggingAspect"/>
</beans>
package com.example.myapp;
public class MyClass {
public void doSomething() {
System.out.println("Doing something...");
}
}
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
MyClass myClass = (MyClass) context.getBean("myClass");
myClass.doSomething();
}