일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- IOC
- hibernate
- exception
- String
- 프록시
- FunctionalInterfaces
- 자바
- Immutable
- 링커
- ORM
- Spring
- JPA
- beanfactory
- 링킹
- Kotlin for Java Developers
- DispatcherServlet
- java
- 컴퓨터시스템
- 토비의스프링
- springboot
- lambda
- gradle
- 메이븐
- 클린코드
- DesignPattern
- 토비의스프링3.1
- 빌드툴
- AutoConfiguration
- springwebmvc
- ApplicationContext
- Today
- Total
목록전체 글 (98)
엔지니어로 가는 길
스프링이란 스프링은 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크다. 애플리케이션 프레임워크는 애플리케이션 개발을 빠르고 효율적으로 할 수 있도록 애플리케이션의 바탕이 되는 틀과 공통 프로그래밍 모델, 기술 API 등을 제공해준다. 애플리케이션 기본 틀 – 스프링 컨테이너 스프링은 스프링 컨테이너 또는 애플리케이션 컨텍스트라고 불리는 스프링 런타임 엔진을 제공한다. 공통 프로그래밍 모델 – IoC/DI, 서비스 추상화, AOP 프레임워크는 애플리케이션 코드가 어떻게 작성돼야 하는지에 대한 기준도 제시해준다. 이런 틀을 프로그래밍 모델이라고 한다. 스프링은 세 가지 핵심 프로그래밍 모델을 지원한다. 1. IoC/DI IoC/DI는 객체의 생명주기와 의존관계에 대한 프로그래밍 모델이다..

논리 연산자 &, |와 &&, ||는 뭐가 다를까? 먼저 결과만 보자면 둘 모두 같은 결과를 낸다. &와 && 모두 모든 조건이 참일 때 참이고, |와 || 모두 하나의 조건만 참이면 참이다. 하지만 &와 |는 &&, ||와 달리 이미 조건식의 결과가 결정이 났다고 해도 모든 조건을 끝까지 검사한다. &와 |에서만 y의 값이 증가된 것을 확인할 수 있다.

원문 링크 https://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html 언어로서의 자바 자바의 특징 자바 코드가 실행되는 과정 자바에서는 소스코드를 plain 텍스트 파일(.java)에 작성한다. 소스코드는 javac 컴파일러에 의해 .class 파일로 컴파일된다. 이때 프로세서에게 .class 파일을 줘도 이해하지 못한다. .class 파일은 바이트 코드로 작성되어 있기 때문이다. 이는 Java Virtual Machine(이하 JVM)가 이해하는 기계어이다. JVM이 바이트 코드를 프로세서가 이해할 수 있는 명령어로 번역해준다. Write once, run everywhere 어떤 환경에서 작성되었든 JVM만 있다면 자바 프로그램은..

ApplicationContext를 쓰지 말아야 할 특별한 이유가 있지 않는 한 ApplicationContext를 쓰는 게 좋다. (ApplicationContext는 interface이다. ApplicationContext의 구현체로는 GenericApplicationContext 또는 AnnotationConfigApplicationContext를 주로 사용한다.) 이들은 스프링의 컨테이너에 주요한 entry point를 제공한다. 예를 들면 이들을 통해서 설정 파일을 로드하거나 클래스 패스 스캔을 하거나 프로그래밍적으로 빈 정의와 어노테이션이 붙은 클래스를 정의하거나 함수적 빈 정의(spring 5.0부터 지원)를 등록하는 일을 할 수 있다. ApplicationContext가 BeanFactor..
1. WebApplicationContext를 찾아 DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE에 담는다. 2. locale resolving이 필요한 경우 locale resolver를 찾아 다른 elements들이 locale 정보를 이용하여 요청을 처리할 수 있도록 한다. locale resolving이 필요하지 않다면 locale resolver는 필요없다. 3. theme resolving이 필요한 경우 theme resolver를 찾아 뷰와 같은 elements가 어떤 theme을 사용할지 결정할 수 있도록 한다. theme를 사용하지 않는다면 무시할 수 있다. 4. If you specify a multipart file resolver, th..

서블릿 3.0부터 서블릿 컨테이너를 프로그래밍적으로 설정할지 web.xml를 이용하여 설정할지 선택할 수 있다. WebApplicationInitializer는 Spring MVC에서 제공하는 인터페이스로 이 인터페이스를 구현하면 서블릿 컨테이너를 초기화할 수 있다. 아래의 예시를 참고하자. AbstractDispatcherServletInitializer는 WebApplicationInitializer를 구현한 추상 클래스로, 서블릿 매핑과 DispatcherServlet 설정의 위치를 구체화하는 메소드를 제공하기 때문에 이를 이용한다면 DispatcherServlet을 더 쉽게 등록할 수 있다. 자바를 기반으로한 스프링 설정 애플리케이션에서는 아래의 코드를 추천한다. 만약 XML 기반 스프링 설정을 ..

여기서는 DispatcherServlet이 위임하는 특별한 빈들이 어떻게 설정되는지에 대해 알아본다. 먼저 DispatcherServlet은 WebApplicationContext에 가서 도움을 요청할 '특별한 빈'이 등록되어있는지 확인한다. 만약 등록되어 있으면 해당 빈을 특별한 빈으로 설정하고, 등록되어 있지 않으면 DispatcherServlet.properties에서 설정한 디폴트 타입의 빈을 이용한다. DispatcherServlet.properties에 설정된 default 빈들을 보면 아래와 같다. HandlerMapping BeanNameUrlHandlerMapping RequestMappingHandlerMapping RouterFunctionMapping HandlerAdapter Ht..

이전 시간에 DispatcherServlet이 Spring Web MVC에서 front controller의 역할을 함을 배웠다. 즉, DispatcherServlet은 문지기가 되어 가장 앞에서 모든 요청(request)을 받은 다음 각각의 요청을 적재적소에 위임한다. 여기서 적재적소라 함은 특정한 빈(Bean)을 말한다. DispacherServlet이 요청을 위임하는 각각의 빈은 해당 요청을 잘 처리할 수 있도록 만들어진 객체이다. 프레임워크의 contracts(내장되어 있는 contracts)를 구현하지만 원한다면 우리의 입맛대로 커스터마이즈할 수 있다. 오늘은 DispatcherServlet이 감지하는 Bean(정확히는 Bean의 타입 즉, 인터페이스)에 대해 알아 볼 것이다. 다시 말해 어떤 ..

이 글에서는 Spring Web MVC의 context에 대해 알아볼 것이다. WebApplicationContext? ApplicationContext? ServletContext? 먼저 Context들을 정리하는 게 좋을 것 같다. ApplicationContext는 Spring에서 만든 인터페이스로 말그대로 애플리케이션에 대한 context를 가지고 있다. WebApplicationContext란 Spring의 ApplicationContext를 확장한 인터페이스로, 웹 애플리케이션에서 필요한 몇 가지 기능을 추가한 인터페이스다. 예를 들면 WebApplicationContext의 구현체는 getServletContext라는 메소드를 통해 ServletContext를 얻을 수 있다. ServletC..

이 글에서는 DispatcherServlet에 대해 알아볼 것이다. DispatcherServlet Spring MVC는 다른 웹 프레임워크와 마찬가지로 front controller(?) 패턴으로 설계되었다. DispatcherServlet란 Spring MVC에서의 front controller 역할을 하는 서블릿이다. 즉, DispatcherServlet이라는 서블릿이 전면에서 모든 요청을 받은 뒤 각각의 요청을 처리하는 적절한 곳으로 뿌려준다. (front controller(!) 패턴이란 문지기를 세워 모든 요청이 문지기를 통해서 전달되도록 설계하는 방법이다.) DispatcherServlet도 하나의 서블릿이다. 따라서 다른 어떤 서블릿과 마찬가지로, 자바 설정이나 web.xml에 있는 설정에..