- Spring AOP - Discussion
- Spring AOP - Useful Resources
- Spring AOP - Quick Guide
- Spring AOP - Custom Annotation
- Spring AOP - Proxy
- Spring AOP - Around Advice
- Spring AOP - After Throwing Advice
- Spring AOP - After Returning Advice
- Spring AOP - After Advice
- Spring AOP - Before Aspect
- Spring AOP - Pointcut Methods
- Spring AOP - Application
- Spring AOP - Around Advice
- Spring AOP - After Throwing Advice
- Spring AOP - After Returning Advice
- Spring AOP - After Advice
- Spring AOP - Before Advice
- Spring AOP - Pointcut Methods
- Spring AOP - Application
- Spring AOP - Implementations
- Spring AOP - Advice Types
- Spring AOP - Core Concepts
- Spring AOP - Environment Setup
- Spring AOP - Overview
- Spring AOP - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Spring AOP - XML Based After Advice
After is an advice type which ensures that an advice runs after the method execution. Following is the syntax of after advice.
Syntax
<aop:config> <aop:aspect id = "log" ref = "logging"> <aop:pointcut id = "PointCut-id" expression = "execution( expression )"/> <aop:after pointcut-ref = "PointCut-id" method = "methodName"/> </aop:aspect> </aop:config>
Where,
PointCut-id − id of the PointCut.
methodName − Method name of the function to be called after a called function.
To understand the above-mentioned concepts related to After Advice, let us write an example which will implement After Advice. To write our example with few advices, let us have a working Ecppse IDE in place and use the following steps to create a Spring apppcation.
Step | Description |
---|---|
1 | Update the project Student created under chapter | .
2 | Update the bean configuration and run the apppcation as explained below. |
Following is the content of Logging.java file. This is actually a sample of aspect module, which defines the methods to be called at various points.
package com.tutorialspoint; pubpc class Logging { /** * This is the method which I would pke to execute * after a selected method execution. */ pubpc void afterAdvice(){ System.out.println("Student profile setup complete."); } }
Following is the content of the Student.java file.
package com.tutorialspoint; pubpc class Student { private Integer age; private String name; pubpc void setAge(Integer age) { this.age = age; } pubpc Integer getAge() { System.out.println("Age : " + age ); return age; } pubpc void setName(String name) { this.name = name; } pubpc String getName() { System.out.println("Name : " + name ); return name; } pubpc void printThrowException(){ System.out.println("Exception raised"); throw new IllegalArgumentException(); } }
Following is the content of the MainApp.java file.
package com.tutorialspoint; import org.springframework.context.ApppcationContext; import org.springframework.context.support.ClassPathXmlApppcationContext; pubpc class MainApp { pubpc static void main(String[] args) { ApppcationContext context = new ClassPathXmlApppcationContext("Beans.xml"); Student student = (Student) context.getBean("student"); student.getName(); student.getAge(); } }
Following is the configuration file Beans.xml.
<?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-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd "> <aop:config> <aop:aspect id = "log" ref = "logging"> <aop:pointcut id = "selectAll" expression = "execution(* com.tutorialspoint.Student.getAge(..))"/> <aop:after pointcut-ref = "selectAll" method = "afterAdvice"/> </aop:aspect> </aop:config> <!-- Definition for student bean --> <bean id = "student" class = "com.tutorialspoint.Student"> <property name = "name" value = "Zara" /> <property name = "age" value = "11"/> </bean> <!-- Definition for logging aspect --> <bean id = "logging" class = "com.tutorialspoint.Logging"/> </beans>
Run Project
Once you are done creating source and configuration files, run your apppcation. Right-cpck on MainApp.java in your apppcation and use run as Java Apppcation command. If everything is fine with your apppcation, this will print the following message.
Name : Zara Age : 11 Student profile setup complete.Advertisements