버전이 업그레이드 되면서 xml파일 보단 Java Configuration(어노테이션)을 사용함 

사용할때는 AnnotationConfigApplicationContext(클래스명);

반환형에 class, 메소드 이름에 id를 입력함.

 

1. @Configuration

 - class파일을 spring 설정클래스 이라고 명시.

 

2. @Bean

 - spring config클래스에서 bean객체 명시

 

3. @ComponentScan(패키지명)

 - 명시한 패키지에서 @Controller, @Service, @Repository, @Component가 붙은 클래스를 자동으로 스프링 컨테이너에 빈으로 등록

 = <context:component-scan base-package="ems.member">

@Configuration
@ComponentScan("ems.member")	// member 패키지의 Component는 자동으로 등록 (아래 빈은 수동으로 등록)
public calss MemberConfig {

   /* in xml 
   <bean id="studentDao" class="ems.member.dao.StudentDao" />
   */
   @bean
   public StudentDao studentDao() {
    	return new StudentDato();
    }
    
   /* in xml 
   <bean id="registerService" class="ems.member.service.StudentRegisterService">
   	<constructor-arg ref="studentDao" />
   </bean>
   */
   @Bean
   public StudentRegisterService registerService() {
   	return new StudentRegisterService(studentDao());
   }
   
}

public class MainMethod {
    public static void main(String[] args) {
        /* applicationContext.xml 사용시
        ApplicationContext ac = new GenericXmlApplicationContext("classpath:applicationContext.xml")
        */
    	ApplicationContext ac = new AnnotationConfigApplicationContext(MemberConfig.class);
        StudentDao dao = ac.getBean(StudentDao.Class); 	// = (StudentDao) ac.getBean("studentDao");
    }
}

 

4. @Controller, @Service, @Repository

 - 각각 컨트롤러, 서비스, 레퍼지토리(DAO) 클래스 명시, 특정 역할을 수행하는 Bean에 @bean대신 부여 -> but, 컨테이너에 등록시키기 위해서는 @ComponentScan을 꼭 사용해야 함.

 

5. @Component

 - @ComponentScan의 대상이 되는 어노테이션 중 하나로써 주로 유틸, 기타 지원 클래스에 붙이는 어노테이션

 

6. @Autowired, @Resource

 - 주입 대상이되는 bean을 컨테이너에 찾아 주입하는 어노테이션

 

7. @RequestMapping, @GetMapping, @PostMapping, @DeleteMapping, @PutMapping, @PatchMapping

- Http요청과 이를 다루기 위한 Controller의 메서드를 연결하는 어노테이션

'Framework > Spring' 카테고리의 다른 글

Spring MVC  (0) 2020.08.16
Spring JDBC  (0) 2020.08.02
Spring 모듈  (0) 2020.08.01
IoC(제어 역전), DI(의존성 주입)  (0) 2020.04.17
요약  (0) 2020.04.09

+ Recent posts