728x90
메시지 소스스프링은 다양한 메시지를 한 곳에서 관리할 수 있도록 메시지 기능을 제공한다.인터페이스 `MessageSource` 와 구현체 `ResourceBundleMessageSource` 를 스프링 빈으로 등록하면 된다.(스프링 부트를 사용하면 자동으로 등록한다.) 직접 등록@Beanpublic MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasenames("messages", "errors"); messageSource.setDefaultEncoding("utf-8"); return messageSource;}..
타임리프특징- 서버 사이드 HTML 렌더링 (SSR) : 백엔드 서버에서 HTML 을 동적으로 렌더링- 네츄럴 템플릿 : 순수 HTML 파일을 그대로 유지 : 서버를 통해 뷰 탬플릿을 거치면 동적으로 HTML 을 변환- 스프링 통합 지원 사용 선언`` 속성 변경 `attrappend` `attrprepend` `classappend` `checked` - `th:xxx` : 타임리프 뷰 템플릿을 거치게 되면 `th:xxx` 값으로 동적으로 변경된다. : HTML 대부분의 속성을 `th:xxx` 로 변경할 수 있다. : `th:href="@{/css/bootstrap.min.css}"`- `th:attrappend` `th:attrprepend` : 속성 값 뒤/앞 에 값을 추가한다. : `..
요청 매핑`@RestController` : @Controller 는 반환값이 String 이면 뷰 이름으로 인식하여 뷰를 찾고 렌더링 : @RestController 는 반환값으로 뷰를 찾는 것이 아닌, HTTP 메시지를 바디에 바로 입력 : @Controller + @ResponseBody 효과@RestControllerpublic class MappingController { @RequestMapping("/mapping-get-v1") public String mappingGetV1() { return "ok"; }} `@RequestMapping("url")` : URL 호출이 오면 이 메서드가 실행되도록 매핑 : 다중 설정 가능 : 겹치는 URL 부분을 클래스 단위에..
로깅로깅의 장점- 스레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있고, 출력 모양을 조정할 수 있다.- 로그 레벨을 설정하여 상황에 맞게 조절해 사용할 수 있다.- 콘솔에만 출력하는 것이 아닌, 파일/네트워크 등 별도의 위치에 남길 수 있다.(파일에 남기는 경우, 일별 / 특정 용량에 따라 로그를 분할하는 것도 가능)- 성능도 `System.out` 보다 좋다. (내부 버퍼링, 멀티 스레드 등) `SLF4J` : 로그 라이브러리들을 통합한 인터페이스`LogBack` : `SLF4J` 를 구현한 구현체 중 한 로그 라이브러리 로그 선언private Logger log = LoggerFactory.getLogger(getClass());> `@Slf4j` 를 클래스에 추가하면, 로그 선언 없이 바..
SpringMVC 전체 구조DispatcherServlet- SpringMVC 의 프런트 컨트롤러- `HttpServlet` 을 상속받아 사용하고, 서블릿으로 동작- 스프링 부트가 `DispatcherServlet` 을 서블릿으로 자동 등록하며 모든 경로 (`urlParrerns`) 에 대하여 매핑 SpringMVC 구조 핸들러 매핑 ↑ ① 핸들러 조회↑ 핸들러 어댑터 목록 ↗ ② 핸들러 어댑터 조회 ↗ 클라이언트HTTP 요청→ → → →DispatcherServlet ③ handle(handler)→ → → → → → ← ← ← ← ← ← ⑤ModelAndView 반환핸들러 어댑터 ④ 핸들러 호출→ → → →핸들러(컨트롤러) ↓ ⑧ render(model) 호..
이전 글의 MVC 패턴을 점진적으로 리팩토링 하여 최종적으로 Spring MVC 프레임워크를 직접 만들 것이다.마지막에 최종 정리가 있다.이전 글의 MVC 패턴회원 추가 컨트롤러@WebServlet(name = "mvcMemberFormServlet", urlPatterns = "/servlet-mvc/members/newform")public class MvcMemberFormServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String viewPath..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.