Click here to watch on Youtube:
https://www.youtube.com/watch?v=Dch_arO7q8Y&list=UUhwKlOVR041tngjerWxVccw
Click the below Image to Enlarge:
pom.xml
EmployeeService.java
AroundAdvice.java
applicationContext.xml
App.java
Output
Click the below link to download the code:
https://sites.google.com/site/ramj2eev2/java_basics/SpringDemo_around_advise.zip?attredirects=0&d=1
Github Link:
https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringDemo_around_advise
Bitbucket Link:
https://bitbucket.org/ramram43210/spring/src/e16b8c6ef73a72464fa5812e24080179c4adc913/Spring_2018/SpringDemo_around_advise/?at=master
See also:
All JavaEE Videos Playlist 
All JavaEE Videos 
All JAVA EE Links 
Spring Tutorial 
Servlets Tutorial 
All Design Patterns Links 
JDBC Tutorial 
Java Collection Framework Tutorial 
JAVA Tutorial 
Kids Tutorial 
Cooking Tutorial 
https://www.youtube.com/watch?v=Dch_arO7q8Y&list=UUhwKlOVR041tngjerWxVccw
Click the below Image to Enlarge:
| Spring AOP AroundAdvice Example | Spring Tutorial | 
| Spring AOP AroundAdvice Example | Spring Tutorial | 
| Spring AOP AroundAdvice Example | Spring Tutorial | 
| Spring AOP AroundAdvice Example | Spring Tutorial | 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ram.core</groupId>
<artifactId>SpringDemo</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>SpringDemo</name>
<url>http://maven.apache.org</url>
<properties>
<spring.version>5.0.5.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Spring 5 dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</project>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ram.core</groupId>
<artifactId>SpringDemo</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>SpringDemo</name>
<url>http://maven.apache.org</url>
<properties>
<spring.version>5.0.5.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Spring 5 dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</project>
EmployeeService.java
package com.ram.service;
public class EmployeeService
{
public String getEmployeeName(int age)
{
System.out.println("Get Employee Information");
if(age == 28)
{
return "Peter";
}
return "Dave";
}
}
public class EmployeeService
{
public String getEmployeeName(int age)
{
System.out.println("Get Employee Information");
if(age == 28)
{
return "Peter";
}
return "Dave";
}
}
AroundAdvice.java
package com.ram.Advice;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class AroundAdvice implements MethodInterceptor
{
public Object invoke(MethodInvocation mi) throws Throwable
{
Object obj;
System.out.println("AroundAdvice applied before actual method");
obj = mi.proceed();
System.out.println("obj = "+ obj);
System.out.println("AroundAdvice applied after actual method");
return obj;
}
}
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class AroundAdvice implements MethodInterceptor
{
public Object invoke(MethodInvocation mi) throws Throwable
{
Object obj;
System.out.println("AroundAdvice applied before actual method");
obj = mi.proceed();
System.out.println("obj = "+ obj);
System.out.println("AroundAdvice applied after actual method");
return obj;
}
}
applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<bean id="employeeService" class="com.ram.service.EmployeeService"></bean>
<bean id="aroundAdvice" class="com.ram.Advice.AroundAdvice"></bean>
<bean id="employeeServiceProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="employeeService"></property>
<property name="interceptorNames">
<list>
<value>aroundAdvice</value>
</list>
</property>
</bean>
</beans>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<bean id="employeeService" class="com.ram.service.EmployeeService"></bean>
<bean id="aroundAdvice" class="com.ram.Advice.AroundAdvice"></bean>
<bean id="employeeServiceProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="employeeService"></property>
<property name="interceptorNames">
<list>
<value>aroundAdvice</value>
</list>
</property>
</bean>
</beans>
App.java
package com.ram.core;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ram.service.EmployeeService;
public class App
{
public static void main(String[] args)
{
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
System.out.println("---------------------------------------");
EmployeeService employeeService = context.getBean("employeeServiceProxy",
EmployeeService.class);
        
employeeService.getEmployeeName(28);
}
}
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ram.service.EmployeeService;
public class App
{
public static void main(String[] args)
{
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
System.out.println("---------------------------------------");
EmployeeService employeeService = context.getBean("employeeServiceProxy",
EmployeeService.class);
employeeService.getEmployeeName(28);
}
}
Output
Oct 14, 2018 10:06:18 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6ebc05a6: startup date [Sun Oct 14 10:06:18 IST 2018]; root of context hierarchy
Oct 14, 2018 10:06:18 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
---------------------------------------
AroundAdvice applied before actual method
Get Employee Information
obj = Peter
AroundAdvice applied after actual method
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6ebc05a6: startup date [Sun Oct 14 10:06:18 IST 2018]; root of context hierarchy
Oct 14, 2018 10:06:18 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
---------------------------------------
AroundAdvice applied before actual method
Get Employee Information
obj = Peter
AroundAdvice applied after actual method
Click the below link to download the code:
https://sites.google.com/site/ramj2eev2/java_basics/SpringDemo_around_advise.zip?attredirects=0&d=1
Github Link:
https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringDemo_around_advise
Bitbucket Link:
https://bitbucket.org/ramram43210/spring/src/e16b8c6ef73a72464fa5812e24080179c4adc913/Spring_2018/SpringDemo_around_advise/?at=master
See also:

No comments:
Post a Comment