전체보기(316)
-
스프링 AOP, Transaction
AOP를 구현하는 방법 방법 1. AspectJ 의 컴파일러 이용하기 MyClass.java -> (AOP) -> MyClass.class MyClass.class 는 원하는 코드가 주입되서 변형된 파일이다. 방법 2. AspectJ 의 바이트 코드를 조작 할 수 있는 class loader 사용하기 MyClass.java -> MyClass.class MyClass.class -> (클래스로더) -> Memory MyClass.class를 메모리에 올려서 실행할때 자바 클래스 로더가 사용될 것이다. 이때 AspectJ 를 이용하면 MyClass.class에 바이트코드를 조작해서 원하는 코드를 주입하고 메모리에 올릴수있다. 방법 3. 프록시 패턴 이용하기 @Transactional은 스프링 AOP를 이용..
2019.04.21 -
Spring boot's NoSQL
Spring Data에서 지원하는 NoSQL -> Redis, MongoDB, Neo4J, Elasticsearch, Redis, Cassandra ... -> 이러한 다양한 기술을 사용할 때 지정해야하는 Bean 설정들을 스프링 부트가 알아서 해준다. 아래 예제들은 localhost에 연결한다고 가정한다. localhost에 연결할 때는 딱히 큰 설정이 필요없는 경우가 많다. 각 spring boot starter 에서 제공하는 Repository 인터페이스는 JPA 와 공통의 infrastructure를 공유한다. Spring boot starter 의존성외의 기타 다른 메이븐 의존성을 추가해야하는게 있을 수 있으니 상세한 사용법은 아래 Baedlung Document를 참조하자. Redis Redi..
2019.04.21 -
Spring boot's RestTemplate, WebClient
Spring 에서 Remote REST Service를 호출 할 일이 있을 때 사용한다. RestTemplate instance 는 보통 사용하기 전에 Customizing을한다. RestTemplate 을 customizing 하는 대표적인 3가지 방법 방법 1. RestTemplateBuilder 사용하기 restTemplate = restTemplateBuilder.build(); 방법 2. RestTemplateCustomizer 만들어 사용하기 -> RestTemplate을 Customize 하면 자동으로 RestTemplateBuilder에 추가된다. static class ProxyCustomizer implements RestTemplateCustomizer { @Override publi..
2019.04.21 -
스프링 부트 강의 정리 (13~14 : HttpMessageConverter, Static content)
스프링 부트는 Tomcat, jetty, undertow, netty등을 내장하고 있어서 Web 개발에 유용하다. spring-boot-web 를 이용하면 빠르게 웹개발을 빠르게 시작해볼 수 있다. spring-boot-starter-webflux 를 이용하면 reactive web 어플리케이션을 개발 할 수 도 있다. spring mvc : controller, restcontroller 로 http request를 핸들링한다. spring boot 는 spring web mvc를 위한 auto configuration을 제공한다. Spring Web Auto-configuration의 특징 controller의 return string -> ViewResolver -> View -> ContentNe..
2019.04.21 -
스프링 부트 강의 정리 (11~12 : Profile, Log)
profile으로 local 환경 dev 환경 분리하기 https://kok202.tistory.com/114?category=782902 스프링 부트 개발환경 로컬환경 분리 application.yml 에 profile을 dev와 local 로 분할 spring: profiles: development ... --- spring: profiles: local ... 로컬환경으로 돌리고 싶을 경우 Run - Edit configurations -> Configuration ->VM optio.. kok202.tistory.com @Profile을 이용하면 profile 값에 따라서 주입받을 클래스를 바꿀 수 있다. public interface Parent { public String getMessage..
2019.04.21 -
스프링 부트 강의 정리 (8~10 : Properties 읽어들이기)
스프링 부트는 설정파일을 밖으로 빼낼 수 있게 해져있다. properties, yml, Environment, command line 등을 사용하여 정의할 수 있다. 정의된 설정 값은 @Value로 주입받거나 스프링이 제공하는 Environment interface로 접근할 수 있다. 값을 주입 받는 방법은 @Value("${name}") 이다. 설정값 우선순위 1. spring-boot-devtools를 사용할 경우 ~/.spring-boot-devtools.properties 2. @TestPropertySource 3. @SpringBootTest 여기서부터 실질적으로 사용하는 값들이다. 4. Command line argument 5. Command line argument 를 SPRING_APP..
2019.04.21