본문 바로가기

Java

(20)
[Spring] @RequestBody vs @RequestParam @RequestBody vs @RequestParam@RequestBodyJSON 형식의 데이터로 받는다.변수명 상관없이 단일 데이터(Map, Object)로 받는다.@RestController@RequestMapping(value = "/test")public class TestController { @RequestMapping(value = "/testRequestBody", method = RequestMethod.POST) public void testRequestBody(@RequestBody String param) { System.out.println("param : " + param); System.out.println("text : " + param.get("TEXT")); }..
[Spring] @Controller VS @RestController @Controller VS @RestController Spring에서 Controller를 지정해주는 어노테이션이다.Response Body가 생성되는 방식에서 차이점을 가진다.@Controller ① Controller에서 View를 반환하는 경우 클라이언트에서 요청을 보내면 DispatcherServlet을 거쳐 HandlerMapping으로 Controller를 찾는다.요청 처리 후 View Name을 반환한다.DispatcherServlet이 ViewResolver를 통해 View Name에 해당하는 View를 찾아 반환한다.@Controller@RequestMapping("/menu")public class MenuController { private final MenuService me..
재귀 알고리즘 재귀 알고리즘어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적이라고 한다.public class Factorial { public static int factorial(int n) { if (n > 0) { return n * factorial(n - 1); } else { return 1; } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("정수를 입력하세요 : "); int n = scanner.nextInt(..
Interface Interface다른 클래스를 작성할 때 기본 틀을 제공하면서 클래스 사이의 매개 역할까지도 담당하는 일종의 추상 클래스추상 메소드와 상수만을 포함한다.다중 상속이 가능하다.필드는 public static final로, 메소드는 public abstract로 반드시 선언해야 한다.interface Car { public static final int speed = 50; public abstract void drive();}class Jeep implements Car { private String name; private int speed; Jeep(String name, int speed) { this.name = name; this.speed = ..
추상 클래스 (Abstract Class) 추상 클래스 (Abstract Class)추상 메소드를 포함하며 상속받는 자식 클래스에서 추상 메소드를 오버라이딩하여 완성하도록 유도하는 클래스이다.abstract 예약어를 사용한다.인스턴스화가 불가능하다.추상 클래스를 상속받는 자식 클래스에서는 추상 메소드를 모두 구현해야한다.다중 상속이 불가능하다.public abstract class Car { public String name; public int speed; Car(String name, int speed) { this.name = name; this.speed = speed; } public abstract void drive(); public abstract void stop();} p..