Spring Framework_学习记录_09

版权声明: https://blog.csdn.net/qq_38386316/article/details/88716436

1.Writing a BeanPostProcessor

  • DrwaingApp.java

package org.zcs.spring;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
 

public class DrawingApp {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//BeanFactory factory = new  FileSystemXmlApplicationContext("src/spring.xml");
		//Triangle triangle = new Triangle();
		AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
		context.registerShutdownHook();
		Triangle triangle = (Triangle)context.getBean("triangle");
		triangle.draw();
	}
}

  • Triangle.java
package org.zcs.spring;

 

public class Triangle    {
	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("This is PointA: (" +pointA.getX()  +"," + pointA.getY() +")");
			System.out.println("This is PointB: (" +pointB.getX()  +"," + pointB.getY() +")");
			System.out.println("This is PointC: (" +pointC.getX()  +"," + pointC.getY() +")");
	}

 

}

  • DisplayNameBeanProcessor.java
package org.zcs.spring;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;

public class DisplayNameBeanProcessor implements BeanPostProcessor {

	@Override
	public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
		// TODO Auto-generated method stub
		System.out.println("In After Initialization method. Bean name is " + beanName);
		return bean;
	}

	@Override
	public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
		// TODO Auto-generated method stub
		 System.out.println("In before Initialzation methods , Bean name is : "  + beanName);
		 return bean;
	}
	
}

  • spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans 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.xsd"
  >
 
   
   	<bean id = "triangle" class= "org.zcs.spring.Triangle"  autowire= "byName"  >
 		  
 		 <property name="pointA" ref = "pointA"></property>
 		 <property name="pointB" ref = "pointB"></property>
 		 <property name="pointC" ref = "pointC"></property>
 		
   	</bean>
   	
   	<bean id= "pointA" class = "org.zcs.spring.Point">
   		<property name="x"  value = "0"></property>
   		<property name="y"  value = "0"></property>
   	</bean>
   	<bean id= "pointB" class = "org.zcs.spring.Point">
		<property name="x"  value = "20"></property>
		<property name="y"  value = "0"></property>
	</bean>

 	<bean id= "pointC" class = "org.zcs.spring.Point">
		   <property name="x"  value = "0"></property>
		   <property name="y"  value = "20"></property>
   	</bean>
 	<bean class = "org.zcs.spring.DisplayNameBeanProcessor">
 	
 	</bean>
   	
  </beans>
 

2.学习记录

  • 本次主要学习了如何使用BeanPostProcessor.java
  • 使用它来显示bean的名字。

猜你喜欢

转载自blog.csdn.net/qq_38386316/article/details/88716436