<bean id="engine" class="com.example.Engine" />
<bean id="car" class="com.example.Car" autowire="byName" />
package in.sp.beans;
public class Engine
{
public void start()
{
System.out.println("Engine started...");
}
}
package in.sp.beans;
public class Car
{
private Engine engine;
// Setter for dependency injection
public void setEngine(Engine engine)
{
this.engine = engine;
}
public void drive()
{
engine.start();
System.out.println("Car is running...");
}
}
<?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.xsd">
<!-- Define Engine bean -->
<bean id="engine" class="in.sp.beans.Engine" />
<!-- Define Car bean with autowiring byName -->
<bean id="car" class="in.sp.beans.Car" autowire="byName" />
</beans>
package in.sp.main;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import in.sp.beans.Car;
public class MainApp
{
public static void main(String[] args)
{
// Load Spring context from XML configuration
ApplicationContext context = new ClassPathXmlApplicationContext("in/sp/resources/applicationContext.xml");
// Retrieve the Car bean
Car car = context.getBean(Car.class);
// Call the drive method
car.drive();
}
}
Engine started... Car is running...
byName Autowiring Works ? Car bean is configured with autowire="byName".
engine) in the Car class.
engine bean is found (defined as <bean id="engine" ... />) and automatically injected into the Car bean.
Car class has a property private Engine engine; with a setter method setEngine().
engine bean is explicitly defined with the matching ID engine.
Your feedback helps us grow! If there's anything we can fix or improve, please let us know.
Weβre here to make our tutorials better based on your thoughts and suggestions.