Spring 강의/springMVC 17

springMVC 활용 - (9) 웹 페이지 만들기

상품목록 컨트롤러 → 상품 목록 뷰 → 상품 등록 → 상품 저장 컨트롤러 → 상품 상세 뷰 ←상품상세 컨트롤러 [상품 도메인] @Data @Getter @Setter public class Item { private Long id; private String itemName; private Integer price; private Integer quantity; public Item() { } public Item(String itemName, Integer price, Integer quantity) { this.itemName = itemName; this.price = price; this.quantity = quantity; } } @Repository public class ItemReposit..

springMVC 활용 - (8) HTTP응답

[정적 리소스, 뷰 템플릿] 스프링에서 응답 데이터를 받는 방법 1. 정적 리소스 예) 웹 브라우저에 정적인 HTML, css, js을 제공할 때는, 정적 리소스를 사용 2. 뷰 템플릿 사용 예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용 3.HTTP 메시지 사용 2. - 뷰 템플릿을 호출하는 컨트롤러 @Controller public class ResponseViewController { @RequestMapping("/response-view-v1") public ModelAndView responseViewV1() { ModelAndView mav = new ModelAndView("response/hello").addObject("data", "hello!"); return m..

springMVC 활용 - (7) 스프링 기능

★정리★ 스프링 부트가 미리 핸들러를 등록해놓으면 핸들러매핑에서 핸들러를 조회해서 핸들러어댑터 목록에서 조회해서 핸들러를 호출하고, ModelAndView를 반환하고 뷰리졸버를 호출해서 뷰 렌더 [로그] SLF4j - 인터페이스/logback - 구현체 로그 선언 밑에 셋중 하나 사용 private Logger log = LoggerFactory.getLogger(getClass()); //현재 나의 클래스 지정 private static final Logger log = LoggerFactory.getLogger(Xxx.class) @Slf4j @Slf4j //밑에 private자동으로 넣어줘 @RestController //->String이 그대로 반환 public class LogTestContro..

springMVC 활용 - (6) MVC프레임워크 구조

[MVC 프레임워크 구조] FrontController → DispatcherServlet handlerMappingMap → HandlerMapping MyHandlerAdapter → HandlerAdapter ModelView → ModelAndView viewResolver → ViewResolver MyView → View 1. 핸들러 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회한다. 2. 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다. 3. 핸들러 어댑터 실행: 핸들러 어댑터를 실행한다. 4. 핸들러 실행: 핸들러 어댑터가 실제 핸들러를 실행한다. 5. ModelAndView 반환: 핸들러 어댑터는 핸들러가 반환하는 정보를 ModelAndV..

springMVC 활용 - (5) mvc 프레임워크 만들기

[프론트 컨트롤러 패턴] 프론트 컨트롤러 : 그냥 서블릿. 클라이언트의 요청을 받고 요청에 맞는 컨트롤러 찾아서 호출 나머지 컨트롤러는 서블릿을 사용하지 않아도됨- 왜냐면 클라이언트에서 요청이 오면 와스서버에서 처음 들어간 데가 서블릿인데 그거를 프론트 컨트롤러라 대신 해주니까. 서블릿을 통해서 요청 매핑을 했는데 프론트 컨트롤러가 해주니까(서블릿은 url매핑해서 요청이 오면 서블릿에 처음응로 들어가는곳 ) [프론트컨트롤러 도입-v1] 1. 클라이언트가 http요청을 하면 (컨트롤러 맵을 통해서 어떤 컨트롤러가 호출되는지 찾아)프론트 컨트롤러가 요청을 받고 http매핑 정보를 가지고 컨트롤러를 매핑정보에 넣어놔. 그래서 요청이 오면 매핑 정보를 뒤져서 2. 어떤 컨트롤러를 호출할지 찾아서 호출 3.컨트롤..

springMVC 활용 - (4) 회원관리 웹 애플리케이션

[정리] 클라이언트에서 서버로 원하는 정보를 보낼 때 사용하는 방법 딱 세가지1.get2.post3. http message body 1,2, 번은 서버에서 읽을 떄 request.getparam으로 동일하게 읽을 수 있어 http요청 메세지의 스펙을 편리하게 조회할 수 있도록 하는게 httpServletRequest @Getter @Setter public class Member { private Long id; private String username; private int age; public Member() { } public Member(String username, int age) { this.username = username; this.age = age; } } public class M..

springMVC 활용 - (2) 서블릿 & Request

@ServletComponentScan : 스프링부트에서 서블릿을 사용하려면 스프링이 자동으로 하위 패키 뒤져서 서블릿 찾아서 자동으로 서블릿 등록. @WebServlet() : 서블릿 어노테이션 http요청으로 매핑된 url호출되면 서블릿 컨테이너가 service메서드 실행 servlet은 http를 상속받아 [HelloServlet] @WebServlet(name = "helloServlet",urlPatterns = "/hello") public class HelloServlet extends HttpServlet { @Override //서블릿 호출되면 서비스메서드 호출 protected void service(HttpServletRequest request, HttpServletResponse ..

springMVC 기본 - (9) 빈스코프

[스코프] - 빈이 존재할 수 있는 범위 프로토타입 스코프 - 싱글톤 스코프의 빈을 조회하면 스프링 컨테이너는 항상 같은 인스턴스의 스프링 빈을 반환한다. 반면에 프로토타입 스코프를 스프링 컨테이너에 조회하면 스프링 컨테이너는 항상 새로운 인스턴스를 생성해서 반환 [싱글톤 스코프] 스프링 컨테이너는 항상 같은 인스턴스의 스프링 빈을 반환 1. 싱글톤 스코프의 빈(memberService)을 스프링 컨테이너에 요청 2. 스프링 컨테이너는 본인이 관리하는 스프링 빈을 반환 3. 이후에 스프링 컨테이너에 같은 요청이 와도 같은 객체 인스턴스의 스프링 빈을 반환 [프로토타입 스코프] 스프링 컨테이너가 항상 새로운 인스턴스 생성해서 반환 1.프로토타입 스코프의 빈(protorypeBean)을 스프링 컨테이너에 요..

springMVC 기본 - (8) 빈 생명주기 콜백

[빈 생명주기 콜백] 객체의 초기화와 종료 작업 필요. NetworkClient 는 애플리케이션 시작 시점에 connect() 를 호출해서 연결을 맺어두어야 하고, 애플리케이션이 종료되면 disConnect() 를 호출해서 연결을 끊어야됨 public class NetworkClient { private String url; public NetworkClient() { System.out.println("생성자 호출, url = " + url); //2.호출됨 connect(); call("초기화 연결 메시지"); } public void setUrl(String url) { this.url = url; } //서비스 시작시 호출 public void connect() { System.out.printl..

sprongMVC 기본 - (7) 의존관계 자동 주입

[의존관계 주입 방법] 1. 생성자 주입 - 생성자 호출 시점에 딱 한번 호출이 보장돼 불변, 필수 의존관계에 사용, 생성자를 통해 의존관계 주입 생성자가 딱 1개만 있으면 @Autowired를 생략해도 자동 주입 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRep..

1 2