Spring 메모의 @Component 상세 해석

1817 단어
@ controller 컨트롤러 (서비스 주입)
2. @ 서비스 (dao 주입)
3, @repository dao(dao 접근 가능)
4, @component (일반 포조를 스프링 용기에 실례화하면 프로필에 해당)
@Component, @Service, @Controller, @Repository 주석의 클래스를 spring 용기에 포함시켜 관리합니다
다음은 이것은component를 도입한 스캔 구성 요소입니다
 

1. @Service는 업무층 구성 요소를 표시하는 데 사용되고, @Controller는 제어층 구성 요소(예를 들어struts의 action)를 표시하는 데 사용되며, @Repository는 데이터 접근 구성 요소, 즉DAO 구성 요소를 표시한다.4. @Component는 구성 요소를 가리키며 구성 요소가 분류하기 어려울 때 이 주석을 사용하여 표시할 수 있습니다
@Component는 @Controller@Service@Repository@Aspect와 같은 다른 종류의 주석을 주석할 수 있는 메타 주석입니다.공식적인 원어는: 이 주석을 가진 클래스는 구성 요소로 간주되며, 주석을 기반으로 하는 설정과 클래스 경로 스캔을 사용할 때 이러한 클래스는 실례화됩니다.다른 클래스 레벨의 주석도 @Repository @Aspect 같은 특수한 유형의 구성 요소로 인정될 수 있습니다.따라서 @Component는 다른 종류의 주석을 주석할 수 있습니다.
소스 코드:
@Target({java.lang.annotation.ElementType.TYPE})           @Retention(RetentionPolicy.RUNTIME)           @Documented           public @interface Component {
//이 값은 논리 구성 요소(즉 클래스)의 이름으로 자동 스캔할 때springbean, 즉 상당한 idpublic abstract Stringvalue()로 바뀔 수 있습니다.            }
 
사례:
a. bean의 이름을 지정하지 않습니다. 기본값은 클래스 이름의 알파벳 소문자 university입니다.
@Component
public class University {
          to do sthing...
}
bean을 가져오는 방법:
ApplicationContext ctx  = new ClassPathXmlApplicationContext("./config/applicationContext.xml");           University ust = (University) ctx.getBean("university");
b. bean의 이름을 지정합니다.
@Component("university1")
public class University {
          to do sthing...
}
bean을 가져오는 방법:
ApplicationContext ctx  = new ClassPathXmlApplicationContext("./config/applicationContext.xml");           University ust = (University) ctx.getBean("university1");

좋은 웹페이지 즐겨찾기