나누고 싶은 개발 이야기

Data Engineer로서 기록하고 공유하고 싶은 기술들. 책과 함께 이야기합니다.

Framework/spring 5

[spring boot] spring boot configuration 이해

spring boot는 spring의 설정을 편리하게 하고 실행가능한 어플리케이션을 만들어주는 프레임웍이다. spring 사용을 간단하게 한 일등공신이다. 필자도 처음 spring을 접할 때 복잡한 설정 때문에 힘들다는 이야기를 많이 들었는데, spring boot가 나온 뒤로 너무 간편하게 어플리케이션이 실행되서 그 동작 방식에 궁금해 했었다. 그 동작방식을 분석한 글을 보았는데 이 블로그은 해당 내용을 정리하였다. spring boot 설정의 비밀은 @EnableAutoConfiguration에 있다. @EnableAutoConfiguration 어노테이션은 spring boot가 클래스 경로에서 찾은 바에 따라 애플리케이션이 필요로 하는 모든 bean을 자동으로 로드한다. @Enable* 어노테이션..

Framework/spring 2017.08.30

[spring] lifecycle mechanisms

spring은 bean의 생명주기를 관리하는 3가지 방법이 있다. InitializingBean, DisposableBeaninit(), destroy()@PostConstruct, @PreDestroy 하나의 bean에 대해 여러 lifecycle이 구성되어 있을 경우, 아래와 같은 순서대로 실행이 된다. 초기화 순서@PostConstrct → InitializingBean에 정의된 afterPropertiesSet() 콜백 → 사용자 정의 init() 메서드 @PostConstrct @Sevice public class LifeCycleTest { @PostConstruct public void postConstruct() { System.out.println("postConstruct"); } } ..

Framework/spring 2017.08.29

[spring] cache

캐시는 미래의 데이터 요청에 빠르게 응답하기 위한 데이터 저장의 한 방법이다. (wikipedia) 캐시의 활용은 다양한데, 동일한 데이터를 계속해서 활용할 경우 계산 작업을 중복해서 하지 않도록 하거나 계산 시간이 오래 걸리는 작업을 미리 처리하고 추후 요청이 왔을 때 응답하도록 할 수 있다. spring에서는 cache 서비스를 추상화하며 여러 데이터 저장소를 활용할 수 있도록 구성하였다. org.springframework.cache.Cache 와 org.springframework.cache.CacheManager 인터페이스로 구체화된다. 해당 추상화에 대한 여러가지 구현들이 있는데 우리는 가장 기본이 되는 JDK의 java.util.concurrent.ConcurrentMap를 활용한 구현법을 ..

Framework/spring 2017.08.29

스프링 팁: *Utils 클래스 활용

spring 블로그에 게시되어 있는 spring *Utils 클래스들에 대한 활용 팁이다. 블로그에 youtube 영상과 함께 자세히 설명하고 있다. Spring Tips: The Spring Framework *Utils Classes 크게 보면 아래 Utils들의 설명을 하고 있다.BeanUtils : JavaBean의 util 클래스로 bean의 초기화, property의 검사, property 복사 등의 함수 포함.ClassUtils : Class의 name, method 확인 및 reflection util을 포함. ReflectionUtils와 기능의 차이 비교가 필요하다.SystemPropertyUtils : system property의 값을 손쉽게 가지고 올 수 있는 utilFileCop..

Framework/spring 2017.04.03

[spring security] Controller에서 Principal 가져오기

일단 Principal의 개념을 알아보자. Spring Security의 공식 문서를 보면 What is Spring Security Principal은 시스템을 사용하려고 하는 사용자, 디바이스 혹은 시스템을 통칭한다. Request에 대한 로직을 처리하는 과정에서 인증된 사용자에 대한 정보는 계속 필요할 것이다. 가장 간단한 방법으로 Controller의 파라미터로 Principal을 설정해 받을 수 있다.public ModelAndView someRequestHandler(Principal principal) { User activeUser = (User) ((Authentication) principal).getPrincipal(); ... } 하지만, 위와 같이 처리를 하면 .getPrincip..

Framework/spring 2016.03.24
반응형