스프링 프레임 워크

스프링에서 빈 컨텍스트를 생성하는 과정%%필자의 친구 이름이 빈이다. TMI다 넘어가자. 1. 리플렉션을 통해 BeanDefinition 생성2. BeanDefinition을 @Autowired, 생성자 기반 등의 정보로 "빈 그래프" 형성**빈 그래프: 빈들은 객체 지향을 토대로 협력, 의존 관계가 형성되어 있다. 이때, 이 의존 관계를 그래프처럼 나타낸 것이 빈 그래프이다.2.1. @PostConstructor와 같은 어노테이션이 붙은 메서드들을 실행해 빈 정의를 생성하고, 빈 그래프에 추가한다.3. 빈 그래프가 완성이 되었고, 모든 빈들이 생성되었을 때(싱글톤 생명주기) 빈을 생성함과 동시에 빈 컨텍스트(==애플리케이션 컨텍스트, IoC 컨테이너)를 만든다.**사실, 빈 그래프 == 빈 컨텍스트라고..
우리는 웹 브라우저를 사용할 때, 클라이언트 인터넷 서버 위와 같은 통신을 사용한다. 이때, HTTP 프로토콜이라는 응용 계층의 프로토콜을 사용하여 통신한다. 아래는 스프링 MVC를 시작하기 앞서 알아두어야 할 기초 개념들을 설명해 놓았다. 1. 웹 서버란? 2. 웹 애플리케이션 서버란? 3. 웹 서버와 웹 애플리케이션 서버의 사용 4. 웹 애플리케이션 서버의 서블릿에 대하여 5. 쓰레드 풀 천천히 살펴보자. 1. 웹 서버란? 웹 서버는 HTTP기반으로 동작하는 정적 리소스(HTML, CSS, JS, 이미지, 영상)을 다루는 서버이다. 2. 웹 애플리케이션 서버란? WAS(Web Application Server)는 웹서버 + 프로그램 코드이다. 예시로 톰캣이 있다. 3. 웹 서버와 웹 애플리케이션 서버..
지금까지는 스프링MVC에서 request, response를 다루는 방법을 알아보았다. 이번 글은 그 과정에서 파라미터로 받는 객체(Model, HttpEntity), return 값(url, String) 등은 어떻게 처리되는지에 대하여 알아볼 것이다. 위의 그림 간단 설명 1. 요청이 들어오면, 핸들러 조회 후 핸들러 어댑터는 알맞은 핸들러(컨트롤러)를 호출하여, 로직을 수행한다. 이때, Argument Resolver는 컨트롤러에 필요한 객체를 생성하고 파라미터로 전달해준다. 2. 핸들러에서 return 하는 반환값은 ReturnValue Handler가 값을 변환하고 처리해서 view로 보여주게 된다. =====================================================..
지금까지는 HttpRequest에 대해서 다루는 방법을 알아보았다. Request를 통해 데이터가 들어오면 Controller에서는 매핑을 통해 제일 먼저, RequestParam이나 body의 json 데이터를 받고, 처리 후 view나(return "view") json, text 등(@ResponseBody)을 반환한다. 이때, 반환하는 view는 정적, 혹은 동적으로 반환될 수 있는데, 이것을 알맞게 응답해주는 방법을 알아볼 것이다. 1. 정적 resource(view) 스프링의 파일 구조를 보면, src/main/resources가 있다. resources아래에는 static과 templates가 있는데, -static : 정적 view가 들어갈 수 있음 -templates : 동적 view가 ..
HTML Form 형식의 데이터는 요청 파라미터로 인정되어 getParameter나, @RequestParam을 통해 받아줄 수 있었다. 하지만, HTTP 요청 메시지처럼 Body에 바로 담겨오는 데이터는 받을 수 없었다. 지금부터 위의 말처럼 Body에 바로 담겨오는 HTTP 요청 메시지를 다뤄보는 것을 배워보겠다. ============================================================================================ 1. 요청 메시지 -- 단순 텍스트 요청 메시지는 body에 포함되어 요청으로 오게 된다. 이때 body에 단순 텍스트가 오게 되면, 우리는 Stream의 형태로 받아주어야 한다. *************************..
지금까지 요청 매핑을 알아보았다. 1. 리소스와 HTTP 메소드를 통해 큰 틀을 설계해보았다. 2. GET, POST 등의 메소드 사용 방법을 알아보았다. 하지만, 실질적으로 그 메소드를 사용할 때 어떻게 데이터를 다루는지에 대해서는 아직 모른다. 이제부터 데이터를 다루는 방법을 알아본다. -데이터를 다루는 방법을 알아본 후 설계된 매핑과 같이 사용을 하는 방법을 알아보겠다.(이번 글은 데이터를 다루는 방법만) 코드를 보기에 앞서, 클라이언트에서 서버로 요청 데이터를 전달할 때 주로 사용하는 방법이 있다. 1. GET - 쿼리 파라미터를 통한 데이터 전달 ex)localhost:8080/mapping/users?username=jeong&age=20 -?뒤에 들어가는 부분이 쿼리 파라미터이다. -GET방..
클라이언트에서 요청이 들어올 때, 특정 url을 인식하고, 메소드를 실행시켜주는 것을 매핑이라고 한다. 보통 @RequestMapping("/url") public String Basic(){ log.info("Basic"); return "viewname"; } 위와 같은 형태의 코드로 이루어져 있다. -localhost:8080/url 시 Basic 메소드 실행 후(log 출력) viewname이라는 html 파일이나 뷰를 보여준다. @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping("/hello-basic") public Strin..
평소 input과 output의 확인을 위해서 System.out.println() 같은 콘솔을 통해 확인하는 방법을 사용한다. 하지만, 이는 결국 리소스를 사용해야하므로, 실무나 운영시스템에서는 사용하지 않는다. 우리는 input과 output을 사용하기 위해 logging을 사용할 수 있다. package hello.springmvc.basic; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController //..
쥐4
'스프링 프레임 워크' 카테고리의 글 목록