728x90

@RestController = @Controller  + @Responsebody 이다.

특별한거 없다.

SpringMVC @Controller 은 직접 Thymeleaf 혹은Jsp 등 template engin 에 리턴해주고

JSON, XML 객체를 리턴하기 위해서 @ResponseBody를 붙여줘야 한다.

하지만

@RestController 는 Json 혹은 xml 객체 데이터를 리턴한다.(이미 ResponseBody가 포함되었기때문.)

뭐 인터넷에 많은 관련 그림들이 있다. 이또한 그들을 참고한것이므로...

 

Controller  관련

 

 

Restcontroller 관련

728x90

현재 Spring에서 아래와 같이 3가지 DI 방식을 사용하고 있다.

  • 가장 흔한 필드 주입방식: Field Injection 방식 (비 권장)
@Controller
public class BoardController {
	@Autowired 
  private IBoardItemService boardItemService;
}
  • 수정자 주입: Setter Injection
private IBoardItemService boardItemService;
  @Autowired // 4.3 부터 생략 가능
  public void SetIBoardItemService (MessageSource messageSource){
    this.messageSource = messageSource;
  }
  • 생성자 주입: 가장 선호하는 방식 ( Class 상단에 @RequiredArgsConstructor 추가 , @AllArgsConstructor 는 지워야 될껄?)
@RequiredArgsConstructor
public class BoardController {
	private final IBoardItemService boardItemService;
}

Lombok 없이 사용시:

public class BoardController {
	private final IBoardItemService boardItemService; // Immutability 이슈까지 해결하고 싶다면 private final 접근자 붙여주기
    
		@Autowired
		public BoardController(IBoardItemService boardItemService) {
    	this.boardItemService = boardItemService;
    }
}

+ Recent posts