Programming/스프링(spring) - Enterprise

3. 스프링(spring)/ 어노테이션(annotation)

esoog Polaris 2023. 7. 11. 20:47
반응형

# 스프링 어노테이션(Annotation)

스프링 프레임워크에서 사용되는 특별한 주석으로, 애플리케이션의 구성 요소와 동작을 설정하고 제어하는 데 사용됩니다. 스프링 어노테이션을 사용하면 XML 설정 파일을 작성하는 번거로움을 줄이고, 자바 소스 코드에 주석을 추가함으로써 설정 정보를 명시적으로 표현할 수 있습니다.

다음은 스프링에서 자주 사용되는 몇 가지 어노테이션에 대한 설명입니다:

1. `@Component`:
   - `@Component` 어노테이션은 클래스를 스프링의 구성 요소(Component)로 지정합니다.
   - 해당 클래스를 자동으로 검색하고 인스턴스를 생성하여 스프링 애플리케이션 컨텍스트에 등록합니다.

2. `@Controller`:
   - `@Controller` 어노테이션은 MVC 아키텍처에서 웹 애플리케이션의 컨트롤러를 지정합니다.
   - HTTP 요청을 처리하고 응답을 생성하는 역할을 수행합니다.

3. `@Service`:
   - `@Service` 어노테이션은 비즈니스 로직을 수행하는 서비스 클래스를 지정합니다.
   - 주로 트랜잭션 관리, 데이터 처리, 비즈니스 규칙 등을 구현합니다.

4. `@Repository`:
   - `@Repository` 어노테이션은 데이터베이스와 상호작용하는 DAO(Data Access Object) 클래스를 지정합니다.
   - 주로 데이터베이스에 접근하고 데이터를 조작하는 기능을 제공합니다.

5. `@Autowired`:
   - `@Autowired` 어노테이션은 스프링이 자동으로 의존성(Dependency)을 주입할 때 사용됩니다.
   - 해당 필드, 생성자, 메서드 매개변수에 `@Autowired`를 추가하여 의존성 주입을 수행합니다.

6. `@RequestMapping`:
   - `@RequestMapping` 어노테이션은 컨트롤러 클래스 또는 메서드가 특정 URL에 매핑되는 역할을 지정합니다.
   - HTTP 요청과 매핑되는 핸들러 메서드를 지정하여 요청을 처리합니다.

이 외에도 다양한 스프링 어노테이션이 존재하며, 각각의 어노테이션은 특정한 역할과 기능을 수행합니다. 스프링 어노테이션을 사용하면 코드를 더 간결하고 명확하게 만들어 의존성 주입, 컴포넌트 스캔, URL 매핑 등의 작업을 쉽게 구현할 수 있습니다.

 

 

 

 

다음은 스프링 어노테이션을 사용한 간단한 예시입니다:
1. `@Component` 예시:

```
@Component
public class UserService {
    // UserService의 구현 내용
}
```


위의 예시에서 `UserService` 클래스에 `@Component` 어노테이션을 추가하면 해당 클래스가 스프링의 구성 요소로 등록됩니다. 이후 스프링은 `UserService`의 인스턴스를 자동으로 생성하고, 필요한 곳에서 해당 인스턴스를 주입합니다.

 


2. `@Controller` 및 `@RequestMapping` 예시:

 

```
@Controller
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;
    
    @RequestMapping(method = RequestMethod.GET)
    public String getAllUsers(Model model) {
        List<User> users = userService.getAllUsers();
        model.addAttribute("users", users);
        return "user-list";
    }
}
```


위의 예시에서 `UserController` 클래스에 `@Controller` 어노테이션과 `@RequestMapping` 어노테이션을 추가합니다. `@Controller` 어노테이션은 해당 클래스가 웹 애플리케이션의 컨트롤러로 동작함을 나타냅니다. `@RequestMapping` 어노테이션은 `/users` URL 경로와 `UserController` 클래스를 매핑시킵니다.

또한, `UserController` 클래스에서 `UserService` 필드에 `@Autowired` 어노테이션을 추가하여 의존성 주입을 수행합니다. `getAllUsers` 메서드는 `@RequestMapping` 어노테이션을 통해 HTTP GET 요청과 매핑되고, `Model` 객체를 통해 데이터를 전달합니다.

위의 예시는 스프링 MVC에서 주로 사용되는 어노테이션들을 보여주는 간단한 예시입니다. 각 어노테이션은 해당하는 기능을 수행하며, 스프링 프레임워크가 자동으로 구성 요소를 관리하고 의존성을 주입합니다.

 

 

 

728x90