목록Spring (14)
개발하는 삶

HTTP 응답 - 정적 리소스, 뷰 템플릿, HTTP 메시지 사용 정적 리소스 정적인 HTML, css, js 제공할 때 경로 스프링 부트는 /static, /public, /resources, /META-INF/resources 디렉토리에 있는 정적 리소스 제공 정적리소스가 공개되는 /resources/static 폴더에 HTML을 넣어두면 실제 서비스에서도 공개되기 때문에, 공개할 필요가 없는 HTML인지 확인하자 src/main/resources/static/basic/hello-form.html 에 파일이 있을 때 웹 브라우저에서는 http://localhost:8080/basic/hello-form.html 으로 실행하면 됨 뷰 템플릿 동적인 HTML 제공할 때 뷰 템플릿을 거쳐 HTML 생성 ..

MVC 패턴 프로젝트를 구성할 때 controller 가 실행되면 controller가 model 을 통해 데이터를 가져와서 view 에 데이터를 표현함 DispatcherServlet HttpServlet 을 상속받고 서블릿으로 동작 DispatcherServlet < FrameworkServlet < HttpServletBean < HttpServlet 서블릿이 호출되면 FrameworkServlet(HttpServlet 의 하위) 의 service()를 오버라이딩 받고, DispacherServlet.doDispatch() 호출함 핸들러 조회, 핸들러 어댑터 조회/실행, 뷰 렌더링 호출 모든 경로(urlPatterns="/")에 대해서 매핑함 더 자세한 경로가 우선순위가 높아 그것에 덮어질수있음 S..

HTTP 요청 데이터 GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이, URL 속 쿼리 파라미터에 데이터를 포함해서 전달 ex ) 검색, 필터, 페이징 등 POST - HTML Form content-type : application/x-www-form-urlencoded 메시지 바디에 쿼리 파라미터 형식으로 전달 회원 가입, 상품 주문 등 사용 HTTP message body message body에 데이터 직접 담아서 요청 request.getParameter() 쿼리 파라미터, HTML Form. 두가지 요청 파라미터를 조회할 수 있음 GET - 쿼리 파라미터 쿼리 파라미터는 URL에 다음과 같이 ? 를 시작으로 보낼 수 있다. 추가 파라미터는 & 로 구분..

HTTP html, txt, 이미지, 음성, 파일.. 같은 리소스를 가져올 수 있게 하는 프로토콜 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 웹서버 HTTP 기반으로 동작 (컴퓨터(HTTP 요청) 웹서버 (HTTP 응답)) HTTP 를 통해 웹 브라우저에서 요청하는 HTTP 문서 등을 전송해주는 서비스 프로그램 정적 리소스 제공 (HTML,CSS,JS 등) ex. 아파치 WAS 웹 컨테이너, 서블릿 컨테이너를 포함함 HTTP 프로토콜을 통해 애플리케이션 로직을 수행해주는 미들웨어 동적 서버 컨텐츠를 수행함 (동적 HTML, 서블릿, 스프링MVC 등) (정적리소스 + 웹 서버 기능) (주로 데이터베이스 서버와 같이 수행) ex. 톰캣 웹 시스템 구성 - WEB, WAS, DB WAS, DB만 ..

빈 생명주기 콜백 스프링을 통해 객체 초기화/종료작업을 진행하기 스프링 컨테이너 생성 > 스프링 빈 생성 > 의존관계 주입 > 초기화 콜백 > 사용 > 소멸전 콜백 > 스프링 종료 초기화 콜백 : 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출 소멸전 콜백 : 빈이 소멸되기 직전에 호출 객체의 생성과 초기화를 분리해야 함 빈 생명주기 콜백 지원 : 인터페이스/메서드 지정/애노테이션 @PostConstruct, @PreDestory @PostConstruct : 의존성 주입이 이루어진 후 빈의 초기화를 수행하는 메서드 bean의 생명주기에서 오직 한번만 실행된다 어플리케이션이 실행될 때 한번만! @PreDestory : 스프링 컨테이너에서 빈을 삭제 전, 해야할 작업을 수행 (마지막 소멸 단계에서. ..

@Autowired @Autowired(required = false) : 주입할 대상이 없어도 동작할 수 있게 하는 것 (예외처리 발생 X) 의존관계 주입 생성자 주입 수정자 주입 필드 주입 일반 메서드 주입 옵션 처리 자동 주입 대상을 옵션으로 처리하기 @Nullable : 자동 주입할 대상이 없으면 null이 입력됨 ex ) @Autowired public void setNoBean2(@Nullable Member member) {...} Optional : 자동 주입할 대상이 없으면 Optional.empty 가 입력됨 ex. @Autowired(required = false) public void setNoBean3(Optional member){...} 생성자 주입 생성자를 통해서 의존 관계를..