JavaBeat

  • Home
  • Java
    • Java 7
    • Java 8
    • Java EE
    • Servlets
  • Spring Framework
    • Spring Tutorials
    • Spring 4 Tutorials
    • Spring Boot
  • JSF Tutorials
  • Most Popular
    • Binary Search Tree Traversal
    • Spring Batch Tutorial
    • AngularJS + Spring MVC
    • Spring Data JPA Tutorial
    • Packaging and Deploying Node.js
  • About Us
    • Join Us (JBC)
  • Privacy

How to write Throws Advice in Spring AOP?

July 15, 2008 by Krishna Srinivasan Leave a Comment

Throws Advice Example

Throws Advice is used when throwing exception from the business methods. This interceptor will be called when there is any exception, so one can do any logic to candle the exception.

also read:

  • Spring Tutorials
  • Spring 4 Tutorials
  • Spring Interview Questions

For writing the Throws Advice implementation you have to implement ThrowsAdvice interface. This is typed or marker interface. Marker interface doesn’t have any methods. The implementation class will have to implement a method names afterThrowing() which normally takes four parameters. But, passing one parameter is enough.

SpringAopMain.java

[code lang=”java”]
package javabeat.net.spring.aop;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

/**
* source : www.javabeat.net
*/
public class SpringAopMain {
public static void main(String[] args) {
// Read the configuration file
ApplicationContext ctx = new FileSystemXmlApplicationContext(
"spring-config.xml");

// Instantiate an object
BusinessInterface businessInterface = (BusinessInterface) ctx.getBean("businesslogicbean");

// Execute the public method of the bean
businessInterface.businessLogicMethod();
}
}
[/code]

BusinessInterface.java

[code lang=”java”]
package javabeat.net.spring.aop;

/**
* source : www.javabeat.net
*/
public interface BusinessInterface {
void businessLogicMethod();
}
[/code]

BusinessInterfaceImpl.java

[code lang=”java”]
package javabeat.net.spring.aop;

/**
* source : www.javabeat.net
*/
public class BusinessInterfaceImpl implements BusinessInterface{
public void businessLogicMethod() {
System.out.println("BusinessLogic Method Called");
throw new RuntimeException();
}
}
[/code]

ThrowsAdviceExample.java

[code lang=”java”]
package javabeat.net.spring.aop;

import org.springframework.aop.ThrowsAdvice;

/**
* source : www.javabeat.net
*/
public class ThrowsAdviceExample implements ThrowsAdvice{
public void afterThrowing(RuntimeException runtimeException){
System.out.println("Inside After Throwing");
}
}
[/code]

also read:

  • Spring Books
  • Introduction to Spring Framework
  • Introduction to Spring MVC Framework

spring-config.xml

[code lang=”xml”]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<!– Bean configuration –>
<bean id="businesslogicbean"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>javabeat.net.spring.aop.BusinessInterface</value>
</property>
<property name="target">
<ref local="beanTarget" />
</property>
<property name="interceptorNames">
<list>
<value>theTracingThrowsAdvisor</value>
</list>
</property>
</bean>

<!– Bean Classes –>
<bean id="beanTarget" class="javabeat.net.spring.aop.BusinessInterfaceImpl" />

<!– Advisor pointcut definition for before advice –>
<bean id="theTracingThrowsAdvisor"
class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref local="theTracingThrowsAdvice" />
</property>
<property name="pattern">
<value>.*</value>
</property>
</bean>

<!– Advice classes –>
<bean id="theTracingThrowsAdvice"
class="javabeat.net.spring.aop.ThrowsAdviceExample" />

</beans>
[/code]

Filed Under: Spring Framework Tagged With: Spring AOP

About Krishna Srinivasan

He is Founder and Chief Editor of JavaBeat. He has more than 8+ years of experience on developing Web applications. He writes about Spring, DOJO, JSF, Hibernate and many other emerging technologies in this blog.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Follow Us

  • Facebook
  • Pinterest

As a participant in the Amazon Services LLC Associates Program, this site may earn from qualifying purchases. We may also earn commissions on purchases from other retail websites.

JavaBeat

FEATURED TUTORIALS

Answered: Using Java to Convert Int to String

What is new in Java 6.0 Collections API?

The Java 6.0 Compiler API

Copyright © by JavaBeat · All rights reserved