Header Ads

ad

Aware Injection

Project Structure :- (Three packages)

com.nt.beans
=> Engine.java
=> Vehicle.java

com.nt. cfgs
=> applicationContext.xml

com.nt.client
=> ClientTest.java


Engine.java
package com.nt.beans; public class Engine
{ public Engine() { System.out.println("Engine ::0-param constructor"); } public void start() { System.out.println("Engine started...."); } public void stop() { System.out.println("Engine stopped...."); }
}


 Vehicle.java
package com.nt.beans;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class Vehicle implements ApplicationContextAware
{
private ApplicationContext ctx=null;
public Vehicle() 
{
System.out.println("Vehicle ::0-param constructor");
}

public void setApplicationContext(ApplicationContext ctx) throws BeansException 
{
System.out.println("Vehicle.setApplicationContext()");
this.ctx=ctx;
}
public void journey(String source, String destination) 
{
Engine engine=null;
System.out.println("Vehicle.journey(-,-)");
engine=ctx.getBean("engg",Engine.class);
engine.start();
System.out.println("Journey is going on from "+source+" to "+destination);
engine.stop();
}
}


applicationContext.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">

<bean id="engg" class="com.nt.beans.Engine"/>

<bean id="vehicle" class="com.nt.beans.Vehicle"/>


</beans>



 ClientTest.java

package com.nt.client; import org.springframework.context.ApplicationContext; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.nt.beans.Vehicle; public class ClientTest { public static void main(String[] args) { ApplicationContext ctx=null; ctx=new ClassPathXmlApplicationContext("com/nt/cfgs/applicationContext.xml"); Vehicle v= ctx.getBean("vehicle",Vehicle.class); v.journey("Hyderabad", "Banglore"); ((AbstractApplicationContext) ctx).close(); } }

 Output :- 

Engine ::0-param constructor Vehicle ::0-param constructor Vehicle.setApplicationContext() Vehicle.journey(-,-) Engine started.... Journey is going on from Hyderabad to Banglore Engine stopped....


No comments