스프링부트

Goal 데이터 바인딩에 대해 알아본다 PropertyEditor에 대해 알아본다 데이터 바인딩이란? 기술적인 관점 : 프로퍼값을 타겟 객체에 설정하는 기능 사용자 관점 : 사용자 입력값을 어플리케이션 도메인 모델에 동적으로 변환하여 넣어주는 기능 org.springframework.validation.DataBinder 데이터 바인딩의 개념은 스프링 여러곳에서 쓰이는 핵심 기술 중 하나 즉, 입력값은 대부분 "문자열"인데 그 값을 객체가 가지고 다양한 타입(int, long, Boolean, Date 등 나아가 Event, Book)같은 도메인 타입으로도 변환하여 넣어주는 기능을 말한다. DataBinder (Spring Framework 6.0.11 API) Register the given cust..
Goal 스프링의 추상화 중 하나인 Validation 추상화에 대해 알아본다 validator를 구현해보며 이해한다 Validation 추상화란 ? 애플리케이션에서 사용하는 객체 검증용 인터페이스 이며, org.springframework.validation.Validator를 제공한다 특징 어떠한 계층과도 관계가 없다 모든 계층(웹,서비스,데이터)에서 사용해도 좋다 주로 스프링 mvc에서 사용하기는 하지만 웹 계층에서만 사용하는 웹 전용 validator가 아니다 구현체 중 하나로 JSR-303(Bean Validation 1.0)과 JSR-349(Bean Validation 1.1)을 지원한다 LocalValidatorFactoryBean bean validation이 제공하는 여러 애노테이션을 사..
Goal ApplicationContext의 Resource Loader에 대해 알아본다 ResourceLoader란? 리소스를 읽어오는 기능을 제공하는 인터페이스 public interface ApplicationContext extends ResourcePatternResolver public interface ResourcePatternResolver extends ResourceLoader getResource(location); ResourceLoader의 기능 파일 시스템에서 읽어오기 클래스패스에서 읽어오기 URL로 읽어오기 상대/절대 경로로 읽어오기 AppRunner @Component public class AppRunner implements ApplicationRunner { @Auto..
Goal ApplicationContext의 ApplicationEvent Publisher에 대해 알아본다 이벤트 만들어보고 이해해본다 이벤트 순서를 보장하는 방법에 대해 알아본다 스프링이 제공하는 기본 이벤트에 대해 알아본다 ApplicationEvent Publisher란? 이벤트 프로그래밍에 대한 인터페이스를 제공하며 옵저버 패턴의 구현체다 public interface ApplicationContext extends ApplicationEventPublisher publishEvent(ApplicationEvent event) 이벤트 만들기 스프링 4.2 이전 MyEvent public class MyEvent extends ApplicationEvent { private int data; pu..
Goal ApplicationContext의 MessageSource에 대해 알아본다 messages.properties에 대해 알아본다 릴로딩 기능이 있는 메세지 기능 사용을 해본다 MessageSource란? 국제화 (i18n) 기능을 제공하는 인터페이스 public interface ApplicationContext extends MessageSource @Nullable String getMessage(String code, @Nullable Object[] args, @Nullable String defaultMessage, Locale locale); String getMessage(String code, @Nullable Object[] args, Locale locale) throws No..
Goal ApplicationContext의 Environment기능에 대해 알아본다 프로파일에 대해 알아본다 프로퍼티에 대해 알아본다 Environment란? 스프링 환경이자 설정과 관련된 인터페이스이다 public interface ApplicationContext extends EnvironmentCapable getEnvironment() Environment이 제공하는 두가지 기능 1. 프로파일 빈들의 그룹으로, Environment의 역할은 활성화할 프로파일 확인 및 설정한다. : 디폴트 프로파일은 어떤 프로파일과 상관없이 기본적으로 적용되는 프로파일 @Component public class AppRunner implements ApplicationRunner { @Autowired Appl..
Goal @Component Scan에 대해 알아본다 @Component Scan의 주요 기능을 알아본다 @Component Scan의 동작 원리를 알아본다 @Component Scan란? @Component어노테이션(@Service, @Repository, @Controller)이 부여된 Class들을 자동으로 Scan하여 Bean으로 등록해준다. 이전 xml파일에 를 이용해 지정해주었던 것을 Java파일을 이용하여 bean을 scan하기 위해서 생겨났다. 가장 중요한 설정은 basePackags로 값은 문자열이며, type-safe하지 않음 basePackageClasses는 보다 type-safe함 - 해당 클래스 기준으로 컴포넌트 스캔 시작 보통 @Configuration부터 컴포넌트 스캔 시작 ..
Goal : 스프링부트 환경에서 테스트 코드를 작성해본다. 단위테스트 란? TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 이야기한다. TDD와는 다른 이야기! 기존의 개발 진행 방식 코드 작성 프로그램(Tomcat) 실행 Postman과 같은 api 테스트 도구로 http요청 요청 결과를 system.out.println()으로 눈으로 검증 결과가 다르면 다시 프로그램(Tomcat)을 중지하고 코드 수정 -> 테스트 코드가 없다보니 수정된 코드를 확인할 수 없어 2~5의 단계를 반복해야하는 문제 -> 톰캣 재시작은 많은 시간 소요 -> 눈으로 확인하는 수동 검증 필요 -> 기존에 잘 되던 기능의 문제 (사이드 이펙트) 백문이 불여일타. 코드로 개념을 이해해보자! 예제1. Hello C..
· Spring/mvc
** 톰캣서버를 설치하고 서블릿 코드를 클래스 파일로 빌드해서 올리는 과정은 번거로우니 내장 톰캣이 있는 스프링부트 환경에서 진행 1. HelloServlet.java 생성 HttpServlet을 상속을 받고 @WebServlet 컴포넌트를 사용하여 name과 urlPatterns를 지정해준다. ctrl+o를 해서 protected service 메서드를 만든다. 이 서블릿이 호출이되면 서비스 메서드가 호출이 되도록 !!! 그리고 스프링 실행하자마자 에러 등장 ㅋㅋㅋㅋㅋㅋㅋ 아래는 에러 문구 Unexpected exception during bean creation; nested exception is java.lang.NoClassDefFoundError: 내가 작성한 코드는 없었고 컴포넌트, 메서드는..
· Spring/mvc
스프링프로젝트 쉽게 생성해주는 https://start.spring.io/ 로 접속하여 아래와 같이 세팅하고 Generate 클릭 ** Jsp를 사용할 것이기 때문에 war로 패키징을 선택 보통 jar 사용시에는 내장 톰캣(스프링부트) = 스프링부트가 빌드된 결과에 톰캣 서버를 내장해서 바로할 때 사용한다. war도 동일하게 위와 같이 되지만, 톰캣 서버를 별도로 설치하고 별도로 war에 빌드해서 넣을 때 사용함!!! 2. 생성된 zip파일을 사용할 폴더에 넣고 압축해제 3. 인텔리제이에서 오픈선택 후 servlet -> build.gradle 오픈! ** 프로젝트가 오픈이 되면 꼭 build.gradle 파일에서 패키징이 war로 되어있는지 확인할 것! plugins { id 'org.springfra..
dev_rosieposie
'스프링부트' 태그의 글 목록