Annotation


<aside> 1️⃣ Annotation의 개념

</aside>

<aside> 2️⃣ 주로 사용하는 어노테이션

</aside>

  1. @Component:

  2. @Service, @Repository, @Controller:

  3. @Autowired:

  4. @RequestMapping, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping:

  5. @PathVariable:

  6. @RequestParam:

    // 클라이언트가 /search라는 URL로 검색어(keyword=Spring)를 담아서 전송했다.
    <http://localhost:8080/search?keyword=Spring>
    
    // 이 요청을 처리하는 컨트롤러 메서드
    @GetMapping("/search")
    public String search(@RequestParam(value = "keyword", defaultValue = "spring") String keyword, Model model) {
        model.addAttribute("keyword", keyword);
        return "searchResult";
    }
    
  7. @ResponseBody, @RestController:

  8. @ModelAttribute:

    // 사용자는 form에 아래의 값들을 입력해서 보낸다고 가정한다.
    First Name: John
    Last Name: Doe
    Email: [email protected] 
    
    // 이 form 데이터를 받아서 처리할 객체는 다음과 같다.
    public class User {
        private String firstName;
        private String lastName;
        private String email;
    
        // getter and setter methods...
    }
    
    // form 데이터를 받아서 이를 User객체에 바인딩하는 컨트롤러 메서드
    @PostMapping("/signup")
    public String signup(@ModelAttribute User user) {
        // process the user
        return "success";
    }
    
  9. @Bean:

  10. @SpringBootApplication:

    @SpringBootApplication(scanBasePackages = {"com.example.myapp", "com.example.utils"})
    public class Application {
        // ...
    }
    
    @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
    public class Application {
        // ...
    }
    
  11. @Configuration:

    @Configuration
    public class AppConfig {
    
        @Bean
        public MyService myService() {
            return new MyServiceImpl();
        }
    
    }
    
    @Configuration
    public class OtherConfig {
    
        @Autowired
        private AppConfig appConfig;
    
        @Bean
        public OtherService otherService() {
            return new OtherServiceImpl(appConfig.myService());
        }
    
    }
    
    @SpringBootApplication
    public class Application {
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    
    }
    
    @SpringBootApplication
    @Import(ExternalConfig.class)
    public class Application {
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    
    }
    
  12. @EnableAutoConfiguration: