Example On Spring AOP Before Advice, After Advice

Spring » On Jul 25, 2012 By Sivateja

Hi friends…, will see one example on spring Before Advice, and After Advice.

Files Required

  • MyAfterAdvice.java
  • MyImplClass.java
  • MyInterFace.java
  • MyWelcomeAdvice.java
  • OurLogic.java
  • spconfig.xml

Directory Structure









Actually in spring frame work, while creating a spring bean we need to follow POJI-POJO model.  It means a spring bean is a combination of an interface and implementation class. In AOP always we need to create a spring bean in the form of interface and implementation class only, because the IOC container internally creates proxy class by implementing that interface with the help of ProxyFactoryBean.

In spring configuration file, we need to configure a predefined bean class called ProxyFactoryBean, this class is used to configure our bean class and its required advices as a group.

In the client application, we are passing id of ProxyFactoryBean (id4) to get the object, because we need proxyed object, but not target one hope you understand.  In client application we cannot typecast the object into our bean class type, because internally the object is created for proxy class but not for our bean class right :-)  so we need to typecast into interface type because the proxy class will also implements the same interface internally remember…!!

In OurLogic.java if we typecast into our class type, then it will generates ClassCastException exception.

Hope you are clear, if not refer previous concepts of AOP.



By ( Java/J2EE Developer & Web Designer )
Founder of Java4s.com. You can contact me at sivateja [at] java4s.com


15 Responses to “Example On Spring AOP Before Advice, After Advice”
  1. Abhishek says:


    Thanks for this post. But i have confusion in OurLogic.java,line no.15, it should be MyImplClass inter =(MyImplClass)factory.getBean(“id4″); rather we have used MyInterFace inter(MyInterFace)factory.getBean(“id4″); because MyInterFace is an interface and we can;t instansiate interface. Hope you got my problem.please help

  2. Java4s says:


    We are not creating any object to that interface, we just taking object into interface reference, like how we are using List and ArrayList :-)

    Hope you are clear.

  3. Arin says:

    Thanks a lot for providing such a wonderfull tutorial with easy to understand words….I would request you to write books. It will a block buster…Trust me.

  4. abhimanyu says:

    i love the way u given the explanantion..about each and every file…thanks a lot for these……….

  5. Harika says:

    Hi sir….
    For spring Aop….what jar files is required…When i was implementing the above program..I am getting error like The hierarchy of the type is inconsitent….plz help me on this….I have added sprinaop.jar…plz reply me fast sir…:)

  6. Rajak says:

    Hi Sir,

    Thank you for providing such a useful tutorial in a easy understanding way.
    I got below error when executing the above program. Please have a look into it and fix it asap.

    Error creating bean with name ‘id4′ defined in class path resource [BA_Adviceconfig.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.aop.framework.ProxyFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor

  7. Priya says:

    Hi sir,

    When I tried this example in my laptop am facing the error like this
    “hierarchy of the type is inconsitent”
    PLz help me to resolve this error. even though i addded the jarnamely spring-aop-3.0.2.RELEASE.jar.

    PLZ explain me any other steps need to be followed

  8. Prakash says:

    I am also the facing the same error Priya faces could you please help.I have imported spring aop jar.Even then facing the same issue.

  9. Prakash says:

    Try adding aopalliance.jar as the Advice method is defined in this jar

  10. Swamy Nadhan G says:

    U have great technique of teaching dude….Please put some more technologies in u r menu….

  11. Shubha says:

    Hi Sir, Your way of explaination is very neat and understandable. But I am getting this error while compiling.
    Error:”The hierarchy of the class is inconsistent”. This error is shown for both ‘before’ and ‘after’ class. Please help me in resolving this issue.
    Thanks in advance.

  12. babu says:




    Download the above jar and put it in your buildpath

  13. gulab says:

    In “spconfig.xml” Line No : 15 ()

    Why we use this when we implemented in the “id1″.

    Please explain.

  14. Hi,
    Thanks a lot for this Tutorial.
    In above example we face an Exception from configuration file. We are sending a list of values injected to property ‘interceptorNames’ to the predefined Spring bean ProxyFactoryBean.
    The Exception is:
    The content of element type “list” must match “(bean|ref|idref|value|null|list|set|map|props)*”.

    Please explain to me.
    Thank in Advance.

  15. Manikandan says:

    Hi all,

    For avoid error you have to set the build path for the following jar files,
    1. spring-core
    2. spring-beans
    3. spring-aop
    4. commons-logging and
    5. aopalliance.

    The final one removes the “The hierarchy of the class is inconsistent” issues.

    I hope you will get clear.

    Thanks friends!!!


By posting your answer, you agree to our comments policy.
Facebook_Java4s  Twitter_Java4s  GooglePlus_Java4s  Youtube_Java4s 
© 2010 - 2015
Java4s - Get It Yourself.
The content is copyrighted to Sivateja Kandula and may not be reproduced on other websites.
So, What would you like to learn today?
Browse these popular technologies
Hibernate spring struts Servlets ajax Log4j jQuery Json Core Java Web Services AngularJs

Most Recent Tutorials
Hibernate Recent Posts
Spring Recent Posts
Struts Recent Posts
Recomandded Links
Current & UpComing Tutorials
Sitemap :
spring Hibernate struts Json Ajax Log4j Log4j coreJava Servlets Web Services

  Web Services [ SOAP ], JSP
Facebook_Java4s  Twitter_Java4s  GooglePlus_Java4s  Youtube_Java4s 
© 2010 - 2015 Java4s - Get It Yourself.
The content is copyrighted to Sivateja Kandula and may not be reproduced on other websites.