Spring - @Bean
package com.ah.di;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan
public class AppConf {
@Bean("car")
public Car carBean(){
Car car = new Car();
return car;
}
}
package com.ah.di;
import org.springframework.beans.factory.annotation.Autowired;
public class Car {
@Autowired private Engine engine;
public void displayCarInfo(){ System.out.println("car class display method\n");
if(engine==null){ System.out.println("No engine object"); }else{ engine.testEngine(); } }
}
package com.ah.di;
import org.springframework.stereotype.Component;
@Component public class Engine {
public void testEngine(){ System.out.println("testEngine() method of
Engine class") } }
package com.ah.di;
import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Test {
public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext
(AppConf.class);
var carObj = context.getBean("car",Car.class); carObj.displayCarInfo();
//displyAppContextBeanInfo(context); }
public static void displyAppContextBeanInfo(ApplicationContext context ){ for(String bean :
context.getBeanDefinitionNames()){ System.out.println(bean); } }
}
Watch Demo