본문 바로가기

반응형

Spring/Spring Framework

(13)
재사용성과 다이나믹 디스패치, 더블 디스패치 보호되어 있는 글입니다.
SpringFramework에서의 싱글톤 전략 애플리케이션 동작 영역 (JVM 내) 에서 단 하나의 인스턴스만 만들어야할 경우, 또는 리소스 절약을 위해 하나의 인스턴스만 만들고 이를 공유하도록 설계하고자 할 경우, 싱글톤 패턴을 적용한다. 자바 언어를 이용해서 싱글톤 패턴을 적용할 수 있다. 인스턴스는 public static final 맴버로, 생성자는 private으로 설정하고 해당 맴버를 반환하는 getInstance 메서드를 생성하여, 이 메소드를 통해서만 인스턴스를 가져올 수 있도록 설정해주면 된다. 그러나 여기에는 몇가지 문제점이 있다. 싱글톤 패턴을 구현하는 코드 자체가 복잡해진다. 의존 관계상 클라이언트가 구현체 클래스에 의존한다 -> DIP 위반 구현체 클래스에 의존해서 OCP 원칙을 위반할 가능성이 높다. 테스트가 어렵다. (mo..
Restful API REpresentational State Ttransfer 구성 요소와 데이터 요소에 적용되어 구현을 간소화하고, 복잡성을 줄이며 퍼포먼스 향상에 도움을 주는 일련의 제약 사황이 있는 새로운 웹용 아키텍펴 스타일을 노출하는 방법. SOAP (SimpelObjectAccessProtocol) HTTP 표준 메서드 GET 리소스를 얻는다 POST 리소스를 생성한다 PUT 리소스를 수정한다 DELETE 리소스를 삭제한다 RESTful API의 특징 json, xml, images, atom 과 같은 데이터용 인터넷 미디어 타입 사용 https://juns.com/resoures/ 같은 베이스 URI 레퍼런스 상태에 대한 하이퍼링크 레퍼런스 리소스에 대한 하이퍼링크 HTTP 표준 메서드 (GET/POST/PUT..
다국어 처리하기 다국어를 처리하는 여러가지 방법 중 쿠키를 이용하는 방법을 알아보자. Spring LocaleResolver HTTP request를 통해 host로 접속 시에 browser의 cookie의 ip를 가지고 locale 정보를 확인한다. package org.springframework.web.servlet; import java.util.Locale; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Interface for web-based locale resolution strategies that allows for * both locale resolution via the..
Rest API Rest APIApplication Programmin InterfaceRestREpressentational Statte Transfer인터넷 상의 시스템 간의 상호 운용성(interoperability)을 제공하는 방법중 하나시스템 제각각의 독립적인 진화를 보장하기 위한 방법REST API: REST 아키텍처 스타일을 따르는 API그런 REST API로 괜찮은가https://www.youtube.com/watch?v=RP_f5dMoHFc REST 아키텍처 스타일Client-ServerStatelessCacheUniform InterfaceLayered System (http를 사용하면)Code-On-Demand (optional) (http를 사용하면) Uniform Interface (발표 영상 1..
Spring Task 스프링 프레임워크는 TaskExecutor 인터페이스와 TaskScheduler 인터페이스로 태스크의 비동기 시행과 스케줄링에 대한 추상화를 제공 요구사항 메일 8시에 특정 테이블에 하루동안 쌓인 데이타에 대한 처리. Spring에서 제공하는 Sehcedul 기능은 Spring Batch만큼 순차작업이나 실패에 따른 복구등의 많은 기능을 가지고 있지 않지만, 간략한 설정과 어노테이션만으로 편리하게 설정이 가능한 장점을 가지고 있다. 최소한의 코드를 가진다는건 한눈에 파악할 수 있고, 빠르게 수정이 가능하다는 뜻이다. 1) XML 설정 2) task 생성 @scheduled annotation으로 Scheduler를 통한 Job을 실행하도록 설정 @Component @TaskClientLogs public..
Spring Scheduling spring task task : runnable 인터페이스를 구현하여 독립된 thread 에서 수행되도록 의도된 객체 JDK 의 executor, commonJ WorkManager, Quartz의 task 실행을 위한 어뎁터를 지원하는 Spring 추상화 모델. spring에서 제공하는 task executor, scheduler 인터페이스로 task의 비동기 시행과 스케줄링
IoC DI를 해주는 IoC 컨테이너. 의존성 주입을 대신 해주는 (의존성 주입의 제거권의 역전..) 스프링 IoC 컨테이너 private final OwnerRepository owners; private final ApplicationContext applicationContext; public OwnerController(OwnerRepository clinicService, ApplicationContext applicationContext) { this.owners = clinicService; this.applicationContext = applicationContext; } @GetMapping("/bean") @ResponseBody public String getBean() { return "..

반응형