Click here to watch on Youtube:
https://www.youtube.com/watch?v=D_NLOtD5xi4&list=UUhwKlOVR041tngjerWxVccw
Click the below Image to Enlarge:
pom.xml
Employee.java
Fruit.java
MyBeanPostProcessor.java
applicationContext.xml
App.java
Output
Click the below link to download the code:
https://sites.google.com/site/ramj2eev2/java_basics/SpringDemo_BeanPostProcessor.zip?attredirects=0&d=1
Github Link:
https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringDemo_BeanPostProcessor
Bitbucket Link:
https://bitbucket.org/ramram43210/spring/src/924507f5515578f632825f98c99b1cb6c7d7a7be/Spring_2018/SpringDemo_BeanPostProcessor/?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=D_NLOtD5xi4&list=UUhwKlOVR041tngjerWxVccw
Click the below Image to Enlarge:
Spring Bean Life Cycle - BeanPostProcessor | Spring Tutorial |
Spring Bean Life Cycle - BeanPostProcessor | Spring Tutorial |
Spring Bean Life Cycle - BeanPostProcessor | Spring Tutorial |
Spring Bean Life Cycle - BeanPostProcessor | Spring Tutorial |
Spring Bean Life Cycle - BeanPostProcessor | 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%20http://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.2.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%20http://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.2.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>
Employee.java
package com.ram.model;
/**
* Spring bean
*/
public class Employee
{
private String name;
public void setName(String name)
{
this.name = name;
}
@Override
public String toString()
{
return "Employee [name=" + name + "]";
}
}
/**
* Spring bean
*/
public class Employee
{
private String name;
public void setName(String name)
{
this.name = name;
}
@Override
public String toString()
{
return "Employee [name=" + name + "]";
}
}
Fruit.java
package com.ram.model;
/**
* Spring bean
*/
public class Fruit
{
private String name;
public void setName(String name)
{
this.name = name;
}
@Override
public String toString()
{
return "Fruit [name=" + name + "]";
}
}
/**
* Spring bean
*/
public class Fruit
{
private String name;
public void setName(String name)
{
this.name = name;
}
@Override
public String toString()
{
return "Fruit [name=" + name + "]";
}
}
MyBeanPostProcessor.java
package com.ram.postprocessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
public class MyBeanPostProcessor implements BeanPostProcessor
{
public Object postProcessBeforeInitialization(Object bean, String beanName)
throws BeansException
{
System.out.println("Post Process Before Initialization for the bean = "
+ beanName);
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName)
throws BeansException
{
System.out.println(
"Post Process After Initialization for the bean = " + beanName);
return bean;
}
}
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
public class MyBeanPostProcessor implements BeanPostProcessor
{
public Object postProcessBeforeInitialization(Object bean, String beanName)
throws BeansException
{
System.out.println("Post Process Before Initialization for the bean = "
+ beanName);
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName)
throws BeansException
{
System.out.println(
"Post Process After Initialization for the bean = " + beanName);
return bean;
}
}
applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<bean id="employee" class="com.ram.model.Employee">
<property name="name" value="Peter" />
</bean>
<bean id="fruit" class="com.ram.model.Fruit">
<property name="name" value="Apple" />
</bean>
<!-- This post processor methods are called for every bean -->
<bean class="com.ram.postprocessor.MyBeanPostProcessor" />
</beans>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<bean id="employee" class="com.ram.model.Employee">
<property name="name" value="Peter" />
</bean>
<bean id="fruit" class="com.ram.model.Fruit">
<property name="name" value="Apple" />
</bean>
<!-- This post processor methods are called for every bean -->
<bean class="com.ram.postprocessor.MyBeanPostProcessor" />
</beans>
App.java
package com.ram.core;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ram.model.Employee;
import com.ram.model.Fruit;
public class App
{
public static void main(String[] args)
{
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
System.out.println("---------------------------------------");
Employee employee = context.getBean("employee", Employee.class);
System.out.println(
"Got employee object from the ApplicationContext(Spring Container) = "
+ employee);
Fruit fruit = context.getBean("fruit", Fruit.class);
System.out.println(
"Got fruit object from the ApplicationContext(Spring Container) = "
+ fruit);
context.registerShutdownHook();
}
}
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ram.model.Employee;
import com.ram.model.Fruit;
public class App
{
public static void main(String[] args)
{
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
System.out.println("---------------------------------------");
Employee employee = context.getBean("employee", Employee.class);
System.out.println(
"Got employee object from the ApplicationContext(Spring Container) = "
+ employee);
Fruit fruit = context.getBean("fruit", Fruit.class);
System.out.println(
"Got fruit object from the ApplicationContext(Spring Container) = "
+ fruit);
context.registerShutdownHook();
}
}
Output
Aug 08, 2018 10:06:50 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5b37e0d2: startup date [Wed Aug 08 10:06:50 IST 2018]; root of context hierarchy
Aug 08, 2018 10:06:50 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
Post Process Before Initialization for the bean = employee
Post Process After Initialization for the bean = employee
Post Process Before Initialization for the bean = fruit
Post Process After Initialization for the bean = fruit
---------------------------------------
Got employee object from the ApplicationContext(Spring Container) = Employee [name=Peter]
Got fruit object from the ApplicationContext(Spring Container) = Fruit [name=Apple]
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5b37e0d2: startup date [Wed Aug 08 10:06:50 IST 2018]; root of context hierarchy
Aug 08, 2018 10:06:50 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
Post Process Before Initialization for the bean = employee
Post Process After Initialization for the bean = employee
Post Process Before Initialization for the bean = fruit
Post Process After Initialization for the bean = fruit
---------------------------------------
Got employee object from the ApplicationContext(Spring Container) = Employee [name=Peter]
Got fruit object from the ApplicationContext(Spring Container) = Fruit [name=Apple]
Click the below link to download the code:
https://sites.google.com/site/ramj2eev2/java_basics/SpringDemo_BeanPostProcessor.zip?attredirects=0&d=1
Github Link:
https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringDemo_BeanPostProcessor
Bitbucket Link:
https://bitbucket.org/ramram43210/spring/src/924507f5515578f632825f98c99b1cb6c7d7a7be/Spring_2018/SpringDemo_BeanPostProcessor/?at=master
See also:
No comments:
Post a Comment