가수면

어노테이션 정리 본문

Java

어노테이션 정리

니비앙 2023. 12. 2. 14:18

-스테레오 어노테이션-

@Component 대신 사용해 코드 명확성을 강화할 수 있음

 

@Service

클래스에 비즈니스 로직이 있음

@Controller

웹 컨트롤러일 경우

@Repository

Bean이 데이터베이스와 통신해 데이터를 저장하거나 검색하거나 조작하는 경우 사용

@RestController

REST API 컨트롤러일 경우

 

-기타 어노테이션-

@Primary

중복된 Bean에 우선권

@Qualifier

Primary보다도 우선권. 조건문처럼 사용하는 듯

@Lazy

사용될 때여야 초기화됨. 레이지 로딩같은 거

@Scope(~~프로토타입)

Bean을 요청할 때마다 새로운 인스턴스 생성

@PostConstruct

useEffect 역할

@PreDestroy

useEffect의 클린업 역할

@Named

CDI 어노테이션으로 @Component 역할

@Inject

CDI 어노테이션으로 @Autowired역할

@RequestMapping("url이름 지정")

url로 요청을 보냄

	@RequestMapping(value="add-todo", method = RequestMethod.GET)	// value 대신 path 써도 됨
	public String showNewTodoPage(ModelMap model) {
   
	}
	
	@RequestMapping(value="add-todo", method = RequestMethod.POST)
	public String addNewTodo(ModelMap model, @Valid Todo todo, BindingResult result) {
	}

@GetMapping(path = "url이름 지정")

@RequestMapping이 get요청일 경우 사용 가능

@ResponseBody

return한 것을 그대로 브라우저로 전송되도록 함 (문자열 등)

@SessionAttributes("속성 이름")

세션 저장.저장되는 곳과 사용할 곳 모두 적어줘야 함

@RequestParam vs @PathVariable

@RequestParam - 쿼리 스트링 추출

@PathVariable - url 경로(params) 추출 

	@RequestMapping(value="add-todo", method = RequestMethod.POST)
	public String addNewTodo(@RequestParam String description, ModelMap model) {
		String username = (String)model.get("name");
		
		todoService.addTodo(username, description, LocalDate.now().plusYears(1), false);
		return "redirect:list-todos";
	}
    
	@GetMapping(path = "/hello-world/path-variable/{name}")
	public HelloWorldBean helloWorldPathVariable(@PathVariable String name) {
		return new HelloWorldBean(String.format("Hello World, %s", name)); 
	}

@ControllerAdvice

예외 처리(exception handler)하는 클래스에 사용되는 어노테이션

@JsonProperty("필드이름")

필드 이름 커스텀하는 어노테이션

model에서 변수 지정할 때 같이 하면 된다.

'Java' 카테고리의 다른 글

JSTL  (0) 2023.12.12
JSP  (0) 2023.12.02
H2, JDBC, JPA, Hibernate  (2) 2023.12.02
[Spring Boot] 기본  (0) 2023.12.01
[Spring] 심화  (0) 2023.11.30
Comments