jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://davproductionDB:3306 jdbc.username=root jdbc.password=root
<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"> <property name="url" value="${jdbc.url}"> <property name="username" value="${jdbc.username}"> <property name="password" value="${jdbc.password}"> </property></property></property></property></bean>
XmlBeanFactory factory = new XmlBeanFactory(new FileSystemResource("spring.xml")); PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer(); cfg.setLocation(new FileSystemResource("databaseConfig.properties")); cfg.postProcessBeanFactory(factory);
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
package com.dineshonjava.sdnext.beanFactoryPP.tutorial; public class Triangle { private Point pointA; private Point pointB; private Point pointC; /** * @param pointA the pointA to set */ public void setPointA(Point pointA) { this.pointA = pointA; } /** * @param pointB the pointB to set */ public void setPointB(Point pointB) { this.pointB = pointB; } /** * @param pointC the pointC to set */ public void setPointC(Point pointC) { this.pointC = pointC; } public void draw() { System.out.println("PointA is ("+pointA.getX()+", "+pointA.getY()+")"); System.out.println("PointB is ("+pointB.getX()+", "+pointB.getY()+")"); System.out.println("PointC is ("+pointC.getX()+", "+pointC.getY()+")"); } }
package com.dineshonjava.sdnext.beanFactoryPP.tutorial; public class Point { private int x; private int y; /** * @return the x */ public int getX() { return x; } /** * @param x the x to set */ public void setX(int x) { this.x = x; } /** * @return the y */ public int getY() { return y; } /** * @param y the y to set */ public void setY(int y) { this.y = y; } }
<beans xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:security="http://www.springframework.org/schema/security" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemalocation="http://www.springframework.org/schema/beans"> <bean autowire="byName" class="com.dineshonjava.sdnext.beanFactoryPP.tutorial.Triangle" id="triangle"></bean> <bean class="com.dineshonjava.sdnext.beanFactoryPP.tutorial.Point" id="pointA"> <property name="x" value="0"></property> <property name="y" value="0"></property> </bean> <bean class="com.dineshonjava.sdnext.beanFactoryPP.tutorial.Point" id="pointB"> <property name="x" value="-20"></property> <property name="y" value="0"></property> </bean> <bean class="com.dineshonjava.sdnext.beanFactoryPP.tutorial.Point" id="pointC"> <property name="x" value="${pointC.x}"></property> <property name="y" value="${pointC.y}"></property> </bean> <bean class="com.dineshonjava.sdnext.beanFactoryPP.tutorial.BeanFactoryPPDemo"></bean> </beans>
pointC.x=20 pointC.y=0
package com.dineshonjava.sdnext.beanFactoryPP.tutorial; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; import org.springframework.core.io.FileSystemResource; public class BeanFactoryPPDemo implements BeanFactoryPostProcessor { @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer(); cfg.setLocation(new FileSystemResource("shape.properties")); cfg.postProcessBeanFactory(beanFactory); System.out.println("Bean factory post processor is initialized"); } }
package com.dineshonjava.sdnext.beanFactoryPP.tutorial; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * @author Dinesh Rajput * */ public class DrawingApp { /** * @param args */ public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); Triangle triangle = (Triangle) context.getBean("triangle"); triangle.draw(); } }
Labels: Spring3.0