파게로그
XML Configuration을 Java Configuration으로 변경하기 본문
XML Configuration을 Java Configuration으로 변경하기
XML 파일의 내용을 Java 소스코드로 작성한다.
설정을 위한 자바 클래스라는 것을 표시하기 위해서, @Configuration annotation을 추가한다.
<context:component-scan base-package="admin.school.ui" />
▼
@ComponentScan("admin.school.ui")
<context:component-scan base-package="admin.school.ui, admin.school.entity" />
▼
@ComponentScan({"admin.school.ui", "admin.school.entity"})
<bean id="exam" class="admin.school.entity.MidTermExam" />
스프링에게 객체 생성을 부탁함
▼
@Bean
public Exam exam() { // 컨테이너에 담겨졌을 때 해당 객체의 이름(파란색 글씨, bean id와 동일)
return new MidTermExam();
}
이건 내가 객체를 직접 만드는건데...?라고 생각이 들지만,
@Bean annotation을 통해 IoC Container에 생성된 객체를 담는 것이다.
그리고
ApplicationContext context = new ClassPathXmlApplicationContext("com/ddoongi/settings.xml");
대신
ApplicationContext context = new AnnotationConfigApplicationContext(AdminSchoolConfig.class);
를 통해 클래스로 configure하도록 설정한다.
config 클래스가 여러개라면?
public static void main(String[] args) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.register(AppConfig.class, OtherConfig.class);
ctx.register(AdminSchoolConfig.class);
ctx.refresh(); // 설정된 내용을 다시 읽어들임
ExamConsole console = (ExamConsole)ctx.getBean("console");
console.print();
}
'콤퓨타 왕기초 > Spring' 카테고리의 다른 글
Spring으로 AOP 구현 (0) | 2021.04.22 |
---|---|
AOP(Aspect Oriented Programming) (0) | 2021.04.21 |
annotation을 이용한 객체 생성 (0) | 2021.04.20 |
Annotation을 이용할 때의 장점과 @Autowired 를 이용한 DI (0) | 2021.04.15 |
Spring Bean configuration (0) | 2021.04.14 |