Spring - Construction Injection
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.16</version>
</dependency>
Sample Program for Construction Injection using 'Spring Framework'
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="commonEngine" class="com.ah.di.Engine"/>
<bean id="car1" class="com.ah.di.Car">
<constructor-arg name="engine" ref="commonEngine"/>
</bean>
<bean id="car2" class="com.ah.di.Car">
<constructor-arg name="engine" ref="commonEngine"/>
</bean>
</beans>
package com.ah.di;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
/* Engine engine = new Engine();
Car car = new Car(engine);
car.callEngine();*/
/* Car car = new Car(new Engine());
car.callEngine();*/
ApplicationContext context = new ClassPathXmlApplicationContext("beans_di.xml");
Car carObj1 = context.getBean("car1",Car.class);
carObj1.callEngine();
Car carObj2 = context.getBean("car2",Car.class);
carObj2.callEngine();
}
}
package com.ah.di;
public class Engine {
public Engine() {
System.out.println("Engine constructor.");
}
public void engineInfo(){
System.out.println("engineInfo method of Engine class called.");
}
}
package com.ah.di;
public class Car {
private Engine engine;
public Car(Engine engine) {
this.engine = engine;
}
public void callEngine(){
if(engine==null){
System.out.println("Engine is dead");
}else{
System.out.println("Engine is working");
engine.engineInfo();
}
}
}
Watch Demo
No comments:
Post a Comment