🍃 Spring, Spring Boot/스프링 프레임워크 기초

    [Java / Spring] 21. QueryString 입력(@RequestParam)

    이번 시간에는 쿼리 스트링을 통해 전달되는 값을 스프링 MVC에서 받아 출력하는 작업을 수행해보고자 한다. 사용자가 'list?p=1'과 같이 url에 쿼리 스트링을 사용해 특정 조건을 요청할 경우 우리는 이전 시간에 response 객체를 가져온 것과 마찬가지로 request 객체를 가져와 사용할 수 있다. 이후 페이지를 실행한 뒤, 아래와 같은 url 경로를 입력하고 콘솔창을 확인해보면 사용자가 입력한 값이 잘 전달되어 출력되는 것을 확인할 수 있다. 하지만 스프링 MVC는 위와 같은 방식보다 조금 더 편한 방식을 제공해주고 있다. 사용 방법은 다음과 같다. 이는 스프링의 프론트 컨트롤러에서 getParameter() 함수를 통해 미리 전달 된 값을 해당 함수의 매개변수로 전달함으로써 가능하게 되는 ..

    [Java / Spring] 20. 문서 출력방법

    이전 시간까지 우리는 ViewResolver와 TilesResolver를 사용하여 문서를 출력하였다. 만약 문서가 아닌, 단순한 문자열을 사용자에게 출력하고 싶다면 우리는 다른 두 가지 방법을 사용할 수 있다. 첫 번째 방법은 서블릿 객체를 얻어서 이를 활용하는 방법이다. 사용 방법은 다음과 같다. 즉, Front Controller에서 요청에 의해 HomeController를 가져오면서, response 객체를 넘겨주게되어 HomeController의 함수 안에서 해당 객체를 사용해 문자열을 출력할 수 있는 것이다. 두 번째 방법은 스프링에서 제공하는 방법을 사용하는 것인데, 사용 방법은 다음과 같다. @ResponseBody 어노테이션은 해당 함수가 반환하는 값은 Resolver에 의해 처리될 값이 ..

    [Java / Spring] 19. Root / HomeController

    지난 시간에 우리는 어노테이션을 이용하면서 컨트롤러 클래스의 구현 방식을 바꾸어보았다. 여기서 알 수 있는 점은 이제 해당 컨트롤러 클래스는 더 이상 컨트롤러로써의 역할을 하는 것이 아니며, 실질적인 역할은 컨트롤러 클래스 안에 구현되어있는 함수가 수행한다는 것이다. 따라서 해당 컨트롤러는 컨트롤러를 담고 있는 더 큰 의미의 컨트롤러를 의미하게 되며, 이를 표현하기 위해 컨트롤러의 이름을 특정 페이지에만 해당되는 이름이 아닌 RootController 또는 HomeController 등으로 바꾸어 주는 것이 좋다. 실질적인 컨트롤러의 역할을 하는 함수는 아래와 같이 구현하여 기존 컨트롤러의 역할을 수행할 수 있다. 이와 마찬가지로 공지사항 페이지에 대한 컨트롤러인 DetailController와 List..

    [Java / Spring] 18. Annotation 활용하기

    자바 어플리케이션은 기본적으로 두 가지의 설정 방식을 따른다. 첫 번째는 고전적으로 사용해왔던 xml 파일을 이용하는 방식이며, 두 번째는 어노테이션(Annotation)을 이용하는 방식이다. 이번 시간에는 이전 시간까지 xml 파일로 구현했던 스프링 설정을 어노테이션으로 변경하고자 한다. 우선 서비스 객체를 DI(Dependency Injection) 부분을 먼저 변경하려고 한다. 위 부분에서 태그 부분을 주석처리 한 뒤, 이를 어노테이션으로 대체할 것이다. 주석처리가 되었으면 ListController 클래스의 객체 변수 위에 다음과 같이 어노테이션을 달아준다. 어노테이션의 위치는 변수 위, setter 함수 위 등 상황에 따라 달라질 수 있다. 우리와 같은 경우에는 setter 함수가 실행되면서 추..