# 스프링 어노테이션(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에서 주로 사용되는 어노테이션들을 보여주는 간단한 예시입니다. 각 어노테이션은 해당하는 기능을 수행하며, 스프링 프레임워크가 자동으로 구성 요소를 관리하고 의존성을 주입합니다.
'Programming > 스프링(spring) - Enterprise' 카테고리의 다른 글
10. 스프링(spring)/ VO클래스와 DAO클래스 (0) | 2023.07.17 |
---|---|
2. 스프링(spring)/ IoC와 의존성 주입 (0) | 2023.07.17 |
5. 스프링(spring)/ 버전 호환 설치 및 설정(2023.기준) (0) | 2023.07.17 |
4. 스프링(spring)/ AOP(aspect oriented programming, 관전 지향 프로그래밍) (0) | 2023.07.11 |
1. 스프링(spring)/ 서블릿(servlet)과 컨테이너(container) (0) | 2023.06.24 |