1. Annotation정리

  1. [Config - 기능]

    1. @Configuration
      1. 환경 설정 파일이라는 것을 명시해주는 Bean입니다
    2. @ComponentScan(”com.test.web.model”)
      1. @Compoment 어노테이션 및 streotype(@Service, @Repository, @Controller) 어노테이션이 부여된 Class들을 자동으로 Scan하여 Bean으로 등록 해준다는 의미입니다
    3. @EnableWebMvc
      1. 어노테이션기반의 SpringMvc를 구성할 때 필요한 Bean설정들을 자동으로 해주는 역할을 말합니다
    4. @Bean
      1. Class를 Bean으로 써야할 경우 코드 수정을 할 수 없을때 Bean 어노테이션을 사용할 수 있습니다
  2. [DTO - 기능]

    1. javaBeans가 만들어집니다
    2. private member variable
    3. default constructor, constructor
    4. getter/setter
    5. toString
  3. [Repository - 기능]

    1. Interface구조

      1. @Repostiory로 명시해줍니다
       **@Repository
      public class UserRepoImpl implements UserRepository {
          // ...
      }**
      
    2. Class구조

      1. @Repository로 명시해줍니다
      @Repository
      public class BookRepoImpl implements BookRepository {
          // ...
      }
      
  4. [Service - 기능]

    1. @Service

      1. Bean으로 관리되기 위해 명시합니다
    2. @Autowired

      1. 각 상황의 타입에 맞는 IoC Container 안에 존재하는 Bean을 자동으로 주입시켜줍니다
      2. 그리고 해당 Repository를 종속시키고자 할때 사용되어 집니다
      @Service
      public class UserServiceImpl implements UserService {
          @Autowired
          private UserRepository userRepository;
          // ..
      }
      
  5. [Controller- 기능]

    1. @Controller
      1. Bean으로 관리되기 위해 명시됩니다
    2. @RequestMapping
      1. method에 명시된 방식으로 value Path를 요청할 경우입니다
    3. @GetMapping
      1. Get 방식으로 value Path를 요청할 경우입니다
    4. @PostMapping
      1. Post 방식으로 value Path를 요청할 경우입니다
    5. @ModelAttribute
      1. View 에서 넘어온 parameter를 DTO로 받을 수 있습니다
    6. @CookieValue
      1. 쿠키 값을 컨트롤러 메서드의 파라미터로 사용할 수 있도록 해줍니다
    7. @RequestParam
      1. form의 name 그대로 형변환해서 받을 수 있습니다
      2. (required = false) 설정 시 값이 입력되지 않아도 허용됩니다
    8. @ExceptionHandler
      1. Controller에서 발생하는 해당 exception 타입의 예외를 모아줍니다
    9. @CrossOrigin
    10. 다른 출처의 자원을 공유할 수 있도록 설정하는 권한, 외부 접속도 허용해줍니다