반응형 Develop237 [Spring] 요청 매핑 이제 간단한 요청 매핑 예제를 만들어서 PostMan으로 테스트할 것이다. MappingController를 만들고 테스트용으로 가장 간단한 메소드를 만들었다. @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping("/hello-basic") public String helloBasic() { log.info("helloBasic"); return "ok"; } } @RestController @Controller는 반환 값이 String이면 View 이름으로 인식 @RestController는 반환 값을 HTTP 메시지 바디에 바로 입력 .. 2021. 6. 25. [Java] 얕은 복사와 깊은 복사 (+Clone) 코딩테스트를 보면서 Queue를 여러 메소드에서 사용하다가 요소가 여러개 삭제되는 경우가 있었다. 파라미터로 보낸 Queue에서 요소를 삭제하면 원본 Queue에도 영향을 미치는 문제였으며, String 같은 변수를 넘길 때는 파라미터 값을 변경해도 원본에는 영향을 미치지 않았다. 이 개념을 정리하기 위해 글을 작성한다. 한 가지 간단한 테스트를 해보자. public class Test { public static void main(String[] args) { String str = "originTest"; String[] arr = {"origin", "test"}; System.out.println("before: "+str); for(String a:arr) { System.out.println(.. 2021. 6. 22. [Eclipse] 프로젝트 세팅 시 오류 목록 새로운 work space를 만들고 기존의 프로젝트를 import 해올때 Eclipse에서 흔히 발생하는 오류들을 정리해두었다. 기본적으로 워크스페이스 생성 후에 Eclipse의 encoding 설정은 UTF-8로 변경했다는 가정 하에 진행한다. 목차 SVN 403 오류 Get repository folder children operation failed. svn: E175002: unknown host Error creating bean with name '~': Injection of autowired dependencies failed; ... Unsupported major.minor version 52.0 project facet java version 1.8 is not supported Co.. 2021. 6. 1. [스프링 MVC] @Controller, @RequestMapping 지난 게시글에서 OldController를 통해 기존의 Controller 동작 방식을 살펴봤었다. 이제 본격적으로 스프링 MVC의 편리한 기능들을 사용할 것이다. 컨트롤러를 작성하는데 키 포인트는 @Controller와 @RequestMapping 이 두 어노테이션이다. 이 두 가지에 대해 간단히 설명하고 코드를 작성하겠다. @Controller 내부에 @Component 어노테이션이 존재해 컴포넌트 스캔의 대상 스프링이 자동으로 스프링 빈으로 등록 스프링 MVC에서 어노테이션 기반 컨트롤러로 인식하게 함 @RequestMapping 요청 정보를 매핑 해당 url이 호출되면 해당 메소드가 호출 어노테이션 기반 동작이기 때문에 메소드 이름은 자유 + 핸들러 매핑과 핸들러 어댑터 중 가장 우선순위가 높은 .. 2021. 5. 27. [스프링 MVC] 뷰 리졸버 지난 번에 만들었던 OldController를 수정해서 뷰 리졸버의 작동을 살펴보자. ( 프로젝트 전체: https://github.com/yeon-06/inflearnSpring/tree/master/mvc1 ) OldController @Component("/springmvc/old-controller") public class OldController implements Controller{ @Override public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception { System.out.println("OldController.handleRequest"); return new .. 2021. 5. 26. [Java] static과 synchronized 흔히 static 키워드는 multi-thread 환경에서 문제가 생기고, multi-thread 접근을 방지하기 위한 방법으로는 synchronized의 사용이 있다. static만 쓰거나, synchronized만 쓰거나, 둘 다 쓰거나... 이런 경우가 헷갈려서 따로 정리해본다. static 메모리에 한 번 할당되며 프로그램 종료 시 해제 GC과 관여하지 않는 영역의 메모리에 저장됨 객체 지향적이지 않아서 Java에서는 사용 지양을 권장 interface 구현에 사용할 수 없어 재사용성이 떨어짐 multi-thread 환경에서도 공유됨 설정 파일 정보, 자주 사용하고 절대 변하지 않는 변수(이건 final static을 쓰면 좋다) 등에 사용 메모리에 대한 보충 설명 ▼ 더보기 JVM의 메모리 영역.. 2021. 5. 26. [스프링 MVC] 핸들러 매핑, 핸들러 어댑터 핸들러 매핑과 핸들러 어댑터가 어떤 것들이 어떻게 사용되는지 확인해보자. Controller 인터페이스와 HttpRequestHandler 핸들러(컨트롤러)를 통해 예시를 들겠다. Controller 인터페이스 과거 Spring에서 사용했던 인터페이스 @Controller 어노테이션과는 전혀 다름 public interface Controller { ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception; } 지난 게시글에서 살펴봤던 스프링 MVC 구조를 다시 살펴보자. (글 순서: https://github.com/yeon-06/inflearnSpring/tree/master/.. 2021. 5. 24. [스프링 MVC] 스프링 MVC 구조, DispatcherServlet 목차 1. 기존 프로젝트의 구조 2. 스프링 MVC 구조 3. DispatcherServlet 1. 기존 프로젝트 구조 여태껏 만든 프로젝트의 구조를 한번 정리해보자. ( 프로젝트는 https://github.com/yeon-06/inflearnSpring/tree/master/mvc1 참조) 핸들러 조회: Handler 매핑을 통해 요청 url에 매핑된 핸들러(컨트롤러) 조회 핸들러 어댑터 조회: 핸들러를 처리할 수 있는 핸들러 어댑터 조회 핸들러 어댑터 실행: handler(handler) 핸들러 실행: 핸들러 어댑터가 실제 핸들러 실행 ModelView 반환: 핸들러 어댑터가 핸들러의 반환 정보를 ModelView 형태로 변환해서 반환 viewResolver 호출 MyView 반환: viewReso.. 2021. 5. 24. [Spring] Path with "WEB-INF" or "META-INF" 에러 Path with "WEB-INF" or "META-INF" 에러 에러 코드 전문 ▼ 더보기 2021-05-20 16:35:32.017 WARN 8656 --- [nio-8080-exec-2] o.s.w.s.r.ResourceHttpRequestHandler : Path with "WEB-INF" or "META-INF": [WEB-INF/views/new-form.jsp] 2021-05-20 16:35:32.045 DEBUG 8656 --- [nio-8080-exec-2] o.a.coyote.http11.Http11InputBuffer : Before fill(): parsingHeader: [true], parsingRequestLine: [true], parsingRequestLinePhase: [.. 2021. 5. 21. 이전 1 ··· 15 16 17 18 19 20 21 ··· 27 다음 반응형