파게로그

annotation을 이용한 객체 생성 본문

콤퓨타 왕기초/Spring

annotation을 이용한 객체 생성

파게 2021. 4. 20. 03:13

 

annotation을 활용한 객체 생성

 

클래스 위에 @Component를 붙이면.. 얘가 객체화된다.

 

<context:component-scan base-package="admin.school.ui, admin.school.entity" />  base-package에서 component를 스캔하라

<context:annotation-config /> 객체 생성하게 되면 안쪽도 읽기 때문에 얘는 더이상 필요가 없다

<bean id="exam" class="entity.MidTermExam" />

 

 

@Component("name") 을 통해서 객체에 이름을 부여할 수 있음

 

 

 

@Component의 종류와 시멘틱 @Component

 

annotation을 이용해 객체를 생성했다면, 초기값을 어떻게 설정할 수 있을까?

@Value annotation을 이용한다.

 

@Component
public class MidTermExam implements Exam {
    @Value("20")
    private int kor;
    @Value("30")
    private int eng;
    /*
    ...
    */
}

 

@Component는 MVC로 웹 어플리케이션을 만들 때 비즈니스 로직을 가진 자바 코드에 대해서 @Component라고 한다. 이러한 일반적인 이름보다, 의미론적인 이름을 지닌 annotation이 있는데, @Controller(@RequestMapping, @GetMapping, @...), @Service, @Repository가 그것이다. 즉 객체화하고자 하는 클래스의 역할을 보다 명시적으로 알 수 있다.

 

 

MidTermExam은 entity이고.. 이는 @Component를 사용하지 않는 편이 적절하다.

또, 소스코드가 없는 (내가 만든게 아니거나.. 등등) 여타 클래스를 XML로 구현해야 하나?

Comments