전체 글
-
Spring data common 기타 기능카테고리 없음 2023. 4. 23. 14:05
오늘 이야기 하려는 것은 Spring data common 의 몇가지 기능을 알아보려고 한다. Spring data는 대부분 알고 있듯이 Query methods의 유용함을 다 알고 있을 듯하다. 그래서 따로 이부분은 설명하지 않겠다. 그래서 제목도 기타 기능이라고.. JPA를 사용할 떄 사용하는 JpaRepository나 기타 다른 스토어를 사용할때 사용하는 {store}Repository는 Spring data common 에 있는 것이 아니라 그에 따른 구현체별로 존재한다. 뭐 이미 다 알고 있겠지만 혹시나.. spring data common에 존재하는 Repository는 CrudRepository와 PagingAndSortingRepository 인터페이스만 존재하고 나머지는 그에 따른 구현체..
-
Spring boot 2.0 과 Jpa2.2 그리고 Hibernate 5.2카테고리 없음 2023. 4. 23. 14:05
오늘은 Spring boot2 기반으로 Jpa2.2 대해서 알아볼 예정이다. 실제 Spring boot 2.0은 기본적으로 하이버네이트 5.2를 지원한다. 그렇다고 해서 Spring boot 2.0 에 대해서 알아볼건 아니고 Spring boot 가 여러가지로 편해서 Spring boot 기반으로 작성할 예정이다. 만약 단독으로 Hibernate 를 사용한다면 여러 설정을 해야하므로 설정 관련은 따로 보는 것으 좋을 듯하다. 주로 JPA 2.2에 대해서 알아보도록 할 것이다. 시작해보자! 기본적으로 Spring boot 2.0은 Hibernate 5.2.16을 지원하고 있으며 (현재 이글을 쓰고 있을 때 최신버전은 Spring boot 2.0.1) Hibernate 5.2은 JPA2.1을 디펜더시 받고 ..
-
Spring JdbcTemplate카테고리 없음 2023. 4. 23. 14:05
오늘은 Spring 초창기부터 있었던 JdbcTemplate대해서 간단히 알아보도록 하자. JdbcTemplate은 엄청나게 많은 메서드들을 가지고 있다. 하나씩 다 살펴볼 수는 없지만 주로 사용하는 것들 위주로 살펴보도록 하자. 필자는 대부분 Data Access를 할 경우에는 JPA를 이용하고 어쩌다 mybatis와 JdbcTemplate을 이용한다. 그래도 굳이 따지자면 JdbcTemplate을 더 많이 사용하고 있다. 그래도 자주 사용하지 않다보니 잘 기억이 안난다. 사용할 때만 구글링을 해서 찾아봐서 자주 사용하는 것들을 포스팅을 해보자. execute execute 메서드는 매우 간단하다. 주로 DDL을 실행 시킬때 사용한다. 기본적은 메서드는 딱히 리턴타입도 없다. void execute(S..
-
spring boot 2.0 actuator RC2카테고리 없음 2023. 4. 23. 14:05
오늘은 저번에 알아봤던 spring boot 2.0 actuator의 내용이 조금 변경된 내용이나 추가할 내용이 있어 다시 포스팅을 작성한다. 마일스톤 버전으로 알아봤더니 몇가지 내용이 바뀌었다. 현재는 RC2 버전이니 이제는 바뀌지 않을테야.. 내일모레가 2.0인데 바뀌면... prefix 마일스톤 버전에서는 http endpoint prefix가 기본적으로 /application이였지만 현재는 /actuator로 변경되었다. 하지만 기본적인 prefix이므로 언제든지 변경 가능하다. management.endpoints.web.base-path=/application 위와 같이 작성했을 경우 다음과 같이 요청을 할 수 있다. http http://localhost:8080/application ena..
-
Spring Expression Language (SpEL)카테고리 없음 2023. 4. 23. 14:05
오늘은 Spring에서 제공해주는 Expression Language에 대해서 살펴보도록 하자. Spring Expression Language은 런타임시에 객체 그래프를 조회하고 조작하는 표현언어로 매우 강력하다. 이 표현언어는 아주 많은 기능을 지원하는데 문서를 참고하면 되겠다. 어떻게 사용하는지 한번 보고 어디에 유용하게 사용할 것인가를 살펴보도록 하자. 처음에는 문서에도 있다시피 아주 간단한 표현식을 살펴보자. ExpressionParser @Test public void simple() { ExpressionParser parser = new SpelExpressionParser(); Expression exp = parser.parseExpression("Hello World"); String..
-
@Profile 과 @ActiveProfiles카테고리 없음 2023. 4. 23. 14:05
오늘은 Spring의 @Profile 어노테이션과 @ActiveProfiles 어노테이션에 대해서 알아보도록 하자. 가끔 헷갈리는 개발자분들이 있으니 다시 한번 짚고 넘어 가면 좋을 듯하다. @Profile @Profile 어노테이션은 굉장히 유용한 어노테이션이다. 각 환경에 맞게 Spring의 Bean들을 올릴 수 있어 아주 자주 사용되는 어노테이션이다. 물론 이 어노테이션은 Spring 3.1 부터 생성된 어노테이션이니 그 이하에서는 사용할 수 없다. 물론 xml에서도 사용할 수 있으니 참고하면 되겠다. 어떻게 사용하지는 한번 살펴보자. public interface HelloService { String hello(String name); } 일단 위와 같은 인터페이스가 있다고 가정하자. 그리고 구..
-
Spring Boot test annotation카테고리 없음 2023. 4. 23. 14:05
오늘 이시간에는 Spring boot의 Test annotation 들을 살펴볼 예정이다. Spring boot 에서는 Test도 쉽게 할 수 있도록 많이 지원해주고 있다. 예전에 Spring Boot 1.4 Test에 보면 필자가 남긴 Spring boot 1.4에 추가된 내용이 있는데 조금 부실한 느낌이 있다. 현재 버전 (1.5.x) 버전으로 좀 더 추가된 내용을 포함해서 다시 살펴보도록 하자. DataJpaTest 저번 포스팅에서도 언급을 했지만 Jpa를 Test 할수 있게 도와주는 어노테이션이다. 실제로 DataJpaTest 어노테이션을 사용할 경우에는 기본적으로 인메모리 데이터베이스가 존재해야 한다. @RunWith(SpringRunner.class) @DataJpaTest public cla..
-
Spring boot 2.0 Configuration Binding카테고리 없음 2023. 4. 23. 14:05
오늘 알아볼 내용은 아직 릴리즈는 되지 않았지만 조만간 릴리즈될 Spring boot 2.0의 대해서 알아볼 예정이다. 아직 릴리즈전이라 바뀔 가능성이 있어 깊게는 살펴보지 않을 것이다. 또한 혹시나 기존(이전버전)과 동일한 기능을 마치 신기능처럼 이야기하거나 틀린이야기를 할 경우에는 피드백을 주길 바란다. 필자가 Spring boot를 좋아하는 이유중 하나도 Configuration Binding을 아주 손쉽게 해주기 때문이다. 하지만 기존의 버전과 2.0의 버전이 조금 달라졌다. 오늘은 그 내용을 살펴볼 예정이다. ConfigurationProperties prefix ConfigurationProperties 어노테이션은 아주 손쉽게 properties를 바인딩 해준다. 기존에는 underscore..