Header Ads

ad

Aware Injection | Interface Injection

 Directory structure




      








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