Spring AOP – Around Advice

Spring AOP – XML Based Around Advice ”; Previous Next Around is an advice type which ensures that an advice runs before and after the method execution. Following is the syntax of around advice. Syntax <aop:config> <aop:aspect id = “log” ref = “logging”> <aop:pointcut id = “PointCut-id” expression = “execution( expression )”/> <aop:around 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 before a called function. To understand the above-mentioned concepts related to Around Advice, let us write an example which will implement Around Advice. To write our example with few advices, let us have a working Eclipse IDE in place and use the following steps to create a Spring application − Step Description 1 Update the project Student created under chapter Spring AOP – Application. 2 Update the bean configuration and run the application 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; import org.aspectj.lang.ProceedingJoinPoint; public class Logging { /** * This is the method which I would like to execute * around a selected method execution. */ public String aroundAdvice(ProceedingJoinPoint jp) throws Throwable{ System.out.println(“Around advice”); Object[] args = jp.getArgs(); if(args.length>0){ System.out.print(“Arguments passed: ” ); for (int i = 0; i < args.length; i++) { System.out.print(“arg “+(i+1)+”: “+args[i]); } } Object result = jp.proceed(args); System.out.println(“Returning ” + result); return result.toString(); } } Following is the content of the Student.java file. package com.tutorialspoint; public class Student { private Integer age; private String name; public void setAge(Integer age) { this.age = age; } public Integer getAge() { System.out.println(“Age : ” + age ); return age; } public void setName(String name) { this.name = name; } public String getName() { System.out.println(“Name : ” + name ); return name; } public 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.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext(“Beans.xml”); Student student = (Student) context.getBean(“student”); student.getName(); } } 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 = “selectName” expression = “execution(* com.tutorialspoint.Student.getName(..))”/> <aop:around pointcut-ref = “selectName” method = “aroundAdvice”/> </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 the source and configuration files, run your application. Rightclick on MainApp.java in your application and use run as Java Application command. If everything is fine with your application, it will print the following message. Around advice Name : Zara Returning Zara Print Page Previous Next Advertisements ”;

Spring AOP – Home

Spring AOP Tutorial PDF Version Quick Guide Resources Job Search Discussion One of the key components of Spring Framework is the Aspect Oriented Programming (AOP) framework. Aspect Oriented Programming entails breaking down program logic into distinct parts called so-called concerns. This tutorial will take you through simple and practical approaches while learning AOP framework provided by Spring. Audience This tutorial has been prepared for beginners to help them understand the basic to advanced concepts related to AOP framework of Spring. Prerequisites Before you start practicing various types of examples given in this tutorial, we assume that you are already aware about computer programs and computer programming languages. Print Page Previous Next Advertisements ”;

Spring AOP – After Returning Advice

Annotation Based After Returning Advice ”; Previous Next @AfterReturning is an advice type, which ensures that an advice runs after the method executes successfully. Following is the syntax of @AfterReturning advice. Syntax @AfterReturning(Pointcut = “execution(* com.tutorialspoint.Student.*(..))”, returning = “retVal”) public void afterReturningAdvice(JoinPoint jp, Object retVal){ System.out.println(“Method Signature: ” + jp.getSignature()); System.out.println(“Returning:” + retVal.toString() ); } Where, @AfterReturning − Mark a function as an advice to be executed before method(s) covered by Pointcut, if the method returns successfully. Pointcut − Provides an expression to select a function execution( expression ) − Expression covering methods on which advice is to be applied. returning − Name of the variable to be returned. To understand the above-mentioned concepts related to @AfterReturning Advice, let us write an example, which will implement @AfterReturning Advice. To write our example with few advices, let us have a working Eclipse IDE in place and use the following steps to create a Spring application. Step Description 1 Update the project Student created under chapter Spring AOP – Application. 2 Update the bean configuration and run the application 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; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; @Aspect public class Logging { /** * This is the method which I would like to execute * after a selected method execution. */ @AfterReturning(Pointcut = “execution(* com.tutorialspoint.Student.*(..))”, returning = “retVal”) public void afterReturningAdvice(JoinPoint jp, Object retVal){ System.out.println(“Method Signature: ” + jp.getSignature()); System.out.println(“Returning:” + retVal.toString() ); } } Following is the content of the Student.java file. package com.tutorialspoint; public class Student { private Integer age; private String name; public void setAge(Integer age) { this.age = age; } public Integer getAge() { System.out.println(“Age : ” + age ); return age; } public void setName(String name) { this.name = name; } public String getName() { System.out.println(“Name : ” + name ); return name; } public 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.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext(“Beans.xml”); Student student = (Student) context.getBean(“student”); 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:aspectj-autoproxy/> <!– 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 the source and configuration files, run your application. Rightclick on MainApp.java in your application and use run as Java Application command. If everything is fine with your application, it will print the following message. Age : 11 Method Signature: Integer com.tutorialspoint.Student.getAge() Returning 11 Print Page Previous Next Advertisements ”;

Spring AOP – Before Aspect

Spring AOP – Annotation Based Before Advice ”; Previous Next @Before is an advice type which ensures that an advice runs before the method execution. Following is the syntax of @Before advice. Syntax @Pointcut(“execution(* com.tutorialspoint.Student.getName(..))”) private void selectGetName(){} @Before(“selectGetName()”) public void beforeAdvice(){ System.out.println(“Going to setup student profile.”); } Where, @Pointcut − Mark a function as a Pointcut execution( expression ) − Expression covering methods on which advice is to be applied. @Before − Mark a function as an advice to be executed before method(s) covered by Pointcut. To understand the above-mentioned concepts related to @Before Advice, let us write an example which will implement @Before Advice. To write our example with few advices, let us have a working Eclipse IDE in place and use the following steps to create a Spring application − Step Description 1 Update the project Student created under chapter Spring AOP – Application. 2 Update the bean configuration and run the application 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; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.annotation.Before; @Aspect public class Logging { /** Following is the definition for a Pointcut to select * all the methods available. So advice will be called * for all the methods. */ @Pointcut(“execution(* com.tutorialspoint.Student.getName(..))”) private void selectGetName(){} /** * This is the method which I would like to execute * before a selected method execution. */ @Before(“selectGetName()”) public void beforeAdvice(){ System.out.println(“Going to setup student profile.”); } } Following is the content of the Student.java file. package com.tutorialspoint; public class Student { private Integer age; private String name; public void setAge(Integer age) { this.age = age; } public Integer getAge() { System.out.println(“Age : ” + age ); return age; } public void setName(String name) { this.name = name; } public String getName() { System.out.println(“Name : ” + name ); return name; } public 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.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext(“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:aspectj-autoproxy/> <!– 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 the source and configuration files, run your application. Rightclick on MainApp.java in your application and use run as Java Application command. If everything is fine with your application, it will print the following message. Going to setup student profile. Name : Zara Age : 11 The above-defined @Pointcut uses an expression to select method getAge() defined in class(es) under the package com.tutorialspoint. @After advice uses the above-defined Pointcut as a parameter. Effectively afterAdvice() method will be called before every method covered by the above Pointcut. Print Page Previous Next Advertisements ”;

Spring AOP – Discussion

Discuss Spring AOP ”; Previous Next One of the key components of Spring Framework is the Aspect Oriented Programming (AOP) framework. Aspect Oriented Programming entails breaking down program logic into distinct parts called so-called concerns. This tutorial will take you through simple and practical approaches while learning AOP framework provided by Spring. Print Page Previous Next Advertisements ”;

Spring AOP – Advice Types

Spring AOP – Advice Types ”; Previous Next Spring aspects can work with five kinds of advice mentioned in the following table. Sr.No. Advice & Description 1 before Run advice before the method execution. 2 after Run advice after the method execution, regardless of its outcome. 3 after-returning Run advice after the method execution, only if the method completes successfully. 4 after-throwing Run advice after the method execution, only if the method exits by throwing an exception. 5 around Run advice before and after the advised method is invoked. Print Page Previous Next Advertisements ”;

Spring AOP – After Returning Advice

Spring AOP – XML Based After Returning Advice ”; Previous Next After is an advice type which ensures that an advice runs after the method execution only if the method completes successfully. 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-returning pointcut-ref = “PointCut-id” returning = “retVal” 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 returns successfully. To understand the above-mentioned concepts related to After Returning Advice, let us write an example which will implement After Returning advice. To write our example with few advices, let us have a working Eclipse IDE in place and use the following steps to create a Spring application − Step Description 1 Update the project Student created under chapter Spring AOP – Application. 2 Update the bean configuration and run the application 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; public class Logging { /** * This is the method which I would like to execute * when any method returns. */ public void afterReturningAdvice(Object retVal){ System.out.println(“Returning:” + retVal.toString() ); } } Following is the content of the Student.java file. package com.tutorialspoint; public class Student { private Integer age; private String name; public void setAge(Integer age) { this.age = age; } public Integer getAge() { System.out.println(“Age : ” + age ); System.out.println(“Exception raised”); throw new IllegalArgumentException(); return age; } public void setName(String name) { this.name = name; } public String getName() { System.out.println(“Name : ” + name ); return name; } public 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.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext(“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.*.*(..))”/> <aop:after-returning pointcut-ref = “selectAll” method = “afterReturningAdvice” returning = “retVal”/> </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 the source and configuration files, run your application. Rightclick on MainApp.java in your application and use run as Java Application command. If everything is fine with your application, it will print the following message. Name : Zara Returning : Name Age : 11 Exception raised Print Page Previous Next Advertisements ”;

Spring AOP – Environment Setup

Spring AOP – Environment Setup ”; Previous Next This chapter will guide you on how to prepare a development environment to start your work with Spring Framework. It will also teach you how to set up JDK, Maven and Eclipse on your machine before you set up Spring Framework − Step 1 – Setup Java Development Kit (JDK) You can download the latest version of SDK from Oracle”s Java site − Java SE Downloads. You will find instructions for installing JDK in downloaded files, follow the given instructions to install and configure the setup. Finally set PATH and JAVA_HOME environment variables to refer to the directory that contains java and javac, typically java_install_dir/bin and java_install_dir respectively. If you are running Windows and have installed the JDK in C:jdk-11.0.11, you would have to put the following line in your C:autoexec.bat file. set PATH=C:jdk-11.0.11;%PATH% set JAVA_HOME=C:jdk-11.0.11 Alternatively, on Windows NT/2000/XP, you will have to right-click on My Computer, select Properties → Advanced → Environment Variables. Then, you will have to update the PATH value and click the OK button. On Unix (Solaris, Linux, etc.), if the SDK is installed in /usr/local/jdk-11.0.11 and you use the C shell, you will have to put the following into your .cshrc file. setenv PATH /usr/local/jdk-11.0.11/bin:$PATH setenv JAVA_HOME /usr/local/jdk-11.0.11 Alternatively, if you use an Integrated Development Environment (IDE) like Borland JBuilder, Eclipse, IntelliJ IDEA, or Sun ONE Studio, you will have to compile and run a simple program to confirm that the IDE knows where you have installed Java. Otherwise, you will have to carry out a proper setup as given in the document of the IDE. Step 2 – Setup Eclipse IDE All the examples in this tutorial have been written using Eclipse IDE. So we would suggest you should have the latest version of Eclipse installed on your machine. To install Eclipse IDE, download the latest Eclipse binaries from https://www.eclipse.org/downloads/. Once you download the installation, unpack the binary distribution into a convenient location. For example, in C:eclipse on Windows, or /usr/local/eclipse on Linux/Unix and finally set PATH variable appropriately. Eclipse can be started by executing the following commands on Windows machine, or you can simply double-click on eclipse.exe %C:eclipseeclipse.exe Eclipse can be started by executing the following commands on Unix (Solaris, Linux, etc.) machine − $/usr/local/eclipse/eclipse After a successful startup, if everything is fine then it should display the following result − Step 3 – Download Maven Archive Download Maven 3.8.4 from https://maven.apache.org/download.cgi. OS Archive name Windows apache-maven-3.8.4-bin.zip Linux apache-maven-3.8.4-bin.tar.gz Mac apache-maven-3.8.4-bin.tar.gz Step 4 – Extract the Maven Archive Extract the archive, to the directory you wish to install Maven 3.8.4. The subdirectory apache-maven-3.8.4 will be created from the archive. OS Location (can be different based on your installation) Windows C:Program FilesApache Software Foundationapache-maven-3.8.4 Linux /usr/local/apache-maven Mac /usr/local/apache-maven Step 5 – Set Maven Environment Variables Add M2_HOME, M2, MAVEN_OPTS to environment variables. OS Output Windows Set the environment variables using system properties. M2_HOME=C:Program FilesApache Software Foundationapache-maven-3.8.4 M2=%M2_HOME%bin MAVEN_OPTS=-Xms256m -Xmx512m Linux Open command terminal and set environment variables. export M2_HOME=/usr/local/apache-maven/apache-maven-3.8.4 export M2=$M2_HOME/bin export MAVEN_OPTS=-Xms256m -Xmx512m Mac Open command terminal and set environment variables. export M2_HOME=/usr/local/apache-maven/apache-maven-3.8.4 export M2=$M2_HOME/bin export MAVEN_OPTS=-Xms256m -Xmx512m Step 6 – Add Maven bin Directory Location to System Path Now append M2 variable to System Path. OS Output Windows Append the string ;%M2% to the end of the system variable, Path. Linux export PATH=$M2:$PATH Mac export PATH=$M2:$PATH Step 7 – Verify Maven Installation Now open console and execute the following mvn command. OS Task Command Windows Open Command Console c:> mvn –version Linux Open Command Terminal $ mvn –version Mac Open Terminal machine:~ joseph$ mvn –version Finally, verify the output of the above commands, which should be as follows − OS Output Windows Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537) Maven home: C:Program FilesApache Software Foundationapache-maven-3.8.4 Java version: 11.0.11, vendor: Oracle Corporation, runtime: C:Program FilesJavajdk11.0.11 Default locale: en_IN, platform encoding: Cp1252 OS name: “windows 10”, version: “10.0”, arch: “amd64”, family: “windows” Linux Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537) Java version: 11.0.11 Java home: /usr/local/java-current/jre Mac Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537) Java version: 11.0.11 Java home: /Library/Java/Home/jre Print Page Previous Next Advertisements ”;

Spring AOP – Core Concepts

Spring AOP – Core Concepts ”; Previous Next Before we start working with AOP, let us become familiar with the AOP concepts and terminologies. These terms are not specific to Spring, rather they are related to AOP. Sr.No. Terms & Description 1 Aspect A module which has a set of APIs providing cross-cutting requirements. For example, a logging module would be called AOP aspect for logging. An application can have any number of aspects depending on the requirement. 2 Join point This represents a point in your application where you can plug-in AOP aspect. You can also say, it is the actual place in the application where an action will be taken using Spring AOP framework. 3 Advice This is the actual action to be taken either before or after the method execution. This is the actual piece of code that is invoked during program execution by Spring AOP framework. 4 PointCut This is a set of one or more joinpoints where an advice should be executed. You can specify PointCuts using expressions or patterns as we will see in our AOP examples. 5 Introduction An introduction allows you to add new methods or attributes to existing classes. 6 Target object The object being advised by one or more aspects. This object will always be a proxied object. Also referred to as the advised object. 7 Weaving Weaving is the process of linking aspects with other application types or objects to create an advised object. This can be done at compile time, load time, or at runtime. Print Page Previous Next Advertisements ”;

Spring AOP – After Throwing Advice

Spring AOP – XML Based After Throwing Advice ”; Previous Next After-throwing is an advice type which ensures that an advice runs after the method execution, only if the method exits by throwing an exception. Following is the syntax of after-throwing advice. Syntax <aop:config> <aop:aspect id = “log” ref = “logging”> <aop:pointcut id = “PointCut-id” expression = “execution( expression )”/> <aop:after-throwing pointcut-ref = “PointCut-id” throwing = “ex” method = “methodName”/> </aop:aspect> </aop:config> Where, PointCut-id − id of the PointCut. ex − Exception to be thrown. methodName − Method name of the function to be called when a called function throws an exception and exits. To understand the above-mentioned concepts related to After Throwing Advice, let us write an example which will implement After Throwing Advice. To write our example with few advices, let us have a working Eclipse IDE in place and use the following steps to create a Spring application − Step Description 1 Update the project Student created under chapter Spring AOP – Application. 2 Update the bean configuration and run the application 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; public class Logging { /** * This is the method which I would like to execute * if there is an exception raised. */ public void afterThrowingAdvice(IllegalArgumentException ex) { System.out.println(“There has been an exception: ” + ex.toString()); } } Following is the content of the Student.java file. package com.tutorialspoint; public class Student { private Integer age; private String name; public void setAge(Integer age) { this.age = age; } public Integer getAge() { System.out.println(“Age : ” + age ); return age; } public void setName(String name) { this.name = name; } public String getName() { System.out.println(“Name : ” + name ); return name; } public 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.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext(“Beans.xml”); Student student = (Student) context.getBean(“student”); student.printThrowException(); } } 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.*.*(..))”/> <aop:after-throwing pointcut-ref = “selectAll” throwing = “ex” method = “afterThrowingAdvice”/> </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 the source and configuration files, run your application. Rightclick on MainApp.java in your application and use run as Java Application command. If everything is fine with your application, it will print the following message. Exception raised There has been an exception: java.lang.IllegalArgumentException Exception in thread “main” java.lang.IllegalArgumentException at com.tutorialspoint.Student.printThrowException(Student.java:25) … Print Page Previous Next Advertisements ”;