we'll understand what a BeanPostProcessor is. We'll also write a BeanPostProcessor that prints a message upon initializing each and every bean in the Applicationcontext.xml
package com.venkat.core;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
public class DisplayNameBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessAfterInitialization(Object bean, String beanName)
throws BeansException {
System.out.println("Bean After Method is invoked "+beanName);
return bean;
}
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName)
throws BeansException {
System.out.println("Bean Before Initialization is invoked "+beanName);
return bean;
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------------
package com.venkat.core;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DrawingApp {
/**
* @param args
*/
public static void main(String[] args) {
AbstractApplicationContext factory=new ClassPathXmlApplicationContext("applicationContext.xml");
factory.registerShutdownHook();
Triangle t=(Triangle)factory.getBean("triangleBean");
t.draw();
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------
package com.venkat.core;
public class Point {
private int x;
private int y;
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------
package com.venkat.core;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
public class Triangle implements InitializingBean,DisposableBean{
private Point pointA;
private Point pointB;
private Point pointC;
public Point getPointA() {
return pointA;
}
public void setPointA(Point pointA) {
this.pointA = pointA;
}
public Point getPointB() {
return pointB;
}
public void setPointB(Point pointB) {
this.pointB = pointB;
}
public Point getPointC() {
return pointC;
}
public void setPointC(Point pointC) {
this.pointC = pointC;
}
public void draw()
{
System.out.println("Point A =("+getPointA().getX()+","+getPointA().getY() +")");
System.out.println("Point B =("+getPointB().getX()+","+getPointB().getY() +")");
System.out.println("Point C =("+getPointC().getX()+","+getPointC().getY() +")");
}
@Override
public void destroy() throws Exception {
System.out.println("Destory Methood Called.........");
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("Initilize method called.........");
}
public void mydestroy()
{
System.out.println("my Destory method");
}
public void myInit()
{
System.out.println("My Init method.........");
}
}
----------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans default-init-method="myInit" default-destroy-method="mydestroy"
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="triangleBean" class="com.venkat.core.Triangle" >
<property name="pointA" ref="zeroPoint"/>
<property name="pointB" ref="point1"/>
<property name="pointC" ref="point2"/>
</bean>
<bean id="zeroPoint" class="com.venkat.core.Point">
<property name="x" value="0"/>
<property name="y" value="0"/>
</bean>
<bean id="point1" class="com.venkat.core.Point">
<property name="x" value="10"/>
<property name="y" value="10"/>
</bean>
<bean id="point2" class="com.venkat.core.Point">
<property name="x" value="0"/>
<property name="y" value="10"/>
</bean>
<bean class="com.venkat.core.DisplayNameBeanPostProcessor">
</bean>
</beans>.
i preview this blog. Most of the points are very interesting to read. its help me to study also. Thanks for your help.
ReplyDeleteJMeter Training in Chennai
JMeter Training Institute in Chennai
Appium Training in Chennai
Best Appium Training institute in Chennai
javascript training in chennai
core java training in chennai
C C++ Training in Chennai
It is an excellent and wonderful information. keep sharing on more.
ReplyDeleteAngularJS training in chennai | AngularJS training in anna nagar | AngularJS training in omr | AngularJS training in porur | AngularJS training in tambaram | AngularJS training in velachery