-사전적 의미로는 '주석', 자바에선 특별한 의미를 담은 주석
-즉 자바코드에 주석처럼 달아 프로그램에게 추가적인 정보를 제공하는 메타데이터
-자바나 스프링이 제공해주는 것도 있고, 사용자가 직접 만들수도 있음
@Component : 개발자가 직접 작성한 Class를 Bean으로 등록할 때 사용
-컴포넌트에 대한 추가정보가 없으면 class이름을 camelCase 변경한 것이 Bean ID로 사용
-@Component에 value이라는 값을 이용해서 Bean이름지정
@Component
public class Student {
public Student() {
System.out.println("hi");
}
}
@Component(value="mystudent")
public class Student {
public Student() {
System.out.println("hi");
}
}
@Bean : 개발자가 직접 제어가 불가능한 외부라이브러리 등을 Bean으로 등록할때 사용
-ArrayList같은 라이브러리등을 Bean으로 등록하기 위해서는 별도로 해당 라이브러리 객체를 반환하는 Method를 만들고 @Bean Annotation을 사용하면 됨
-@Bean에 name이라는 값을 이용해서 자신이 원하는 id로 Bean등록
public class ApplicationConfig {
@Bean(name="myarray")
public ArrayList<String> array(){
return new ArrayList<String>();
}
}
-@Configuration: 1개이상의 Bean을 등록하고 있다고 명시할 때 사용
-즉, 해당클래스가 Bean구성 Class임을 알려줌
-그래서 @Bean을 사용하는 클래스의 경우 @Configuration꽈 같이 사용해야함