- Used to import multiple @Configuration files’s in a single @Configuration file
- This way you need not add all the configuration into a single file instead you can group them
Example :
Student Class :
package otherdemo;
public class Student {
private String name;
public Student(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
StudentConfig
package otherdemo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class StudentConfiguration {
@Bean("Student")//important to name the bean else bean name is getStudent
public Student getStudent() {
return new Student("Tyson");
}
}
Teacher Class
package otherdemo;
public class Teacher {
String name;
public Teacher(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Teacher Config
package otherdemo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class TeacherConfiguration {
@Bean("Teacher")//important to name the bean else bean name is getTeacher
public Teacher getTeacher() {
return new Teacher("Justin");
}
}
MasterConfiguaration
package otherdemo;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import({TeacherConfiguration.class,StudentConfiguration.class})
public class MasterConfiguaration {
}
Main Class
package otherdemo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext app = new AnnotationConfigApplicationContext(MasterConfiguaration.class);
Student obj1 = (Student) app.getBean("Student");
System.out.println("\n\n\n"+obj1.getName());
}
}