본문 바로가기

반응형

Spring

(70)
Spring Cloud Config Server jdbc backend 사용해보기 개인적으로 spring cloud config server를 github repository와 연동해서 사용하고 있었다. 평상시 크게 불편함을 느끼지 못했는데 config server의 설정을 변경할 일이 있을 경우 손쉽게 값을 변경하기 어려워 테스트 하기 불편하여 jdbc로 변경하려고 한다. Spring Cloud Config Server backend 구성 spring cloud config server는 다양한 backend를 구성할 수 있도록 autoconfiguration을 지원하고 있다. EnvironmentRepositoryConfiguration에서 다양한 backend 구성 환경에 대한 설정을 제공하고 있는데 대략 다음과 같다. 이 중에 원하는 환경으로 구성하면 된다. Environmen..
@Validated annotation을 controller가 아닌 service, component layer에서 사용하기 @Controller가 아닌 @Service, @Component 등에서 @Validated 사용하기 일반적으로 @Controller에서 @Validated를 사용하여 validation을 사용한다. @PostMapping public BlogArticle create(@RequestBody @Validated(BlogArticle.Create.class) BlogArticle blogArticle) { return blogArticleService.create(blogArticle); } service나 component에서도 @Validated annotation을 사용할 수 있다. 다만 controller에서 사용하는 것과 그 외의 layer에서 사용하는 방법이 좀 차이가 있다. @Service @..
Spring Boot project STS에서 열어보기 Spring Boot 소스 보기 Spring의 소스들은 현재 github에 공개되어 있다. 가끔 source jar로 보는 게 아닌 현재 사용하려는 최신 릴리즈(지금의 경우 Spring Boot 2.7.0)의 모든 소스를 보고 싶은 경우가 있다. git 주소를 가져와 STS git repository에 추가하면 main branch를 가져오는데 main branch의 경우 계속 개발이 추가되고 있고 현재 시점에서 2.7.0 다음 버전이 개발 중이다. 따라서 지금 spring boot main branch를 가져오면 개발 중인 3.0.0-SNAPSHOT을 보게 된다. Spring Boot의 경우 각 버전을 releaase 할 때마다 tag를 이용해 표시해둔다. Github Spring Project의 Sp..
Spring Boot 2.7 Release Notes 전체 Release Notes 목록은 이 곳에서 확인할 수 있습니다. https://luvstudy.tistory.com/tag/Release%20Notes https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes Upgrading from Spring Boot 2.6 @SpringBootTest Property Source Precendence properties attribute 또는 @TestPropertySource annotation을 사용하여 @SpringBootTest 가 추가한 test property source가 이제 command line property source 위에 추가되었습니다. (동일한..
Spring Framework 보안 업데이트 권고 (CVE-2022-22965, CVE-2022-22963) Spring Framework 취약점 관련 보안 업데이트 권고 관련 보안 공지가 3월 31일 올라왔다. https://krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=66592 취약점은 2가지인데 CVE-2022-22965, CVE-2022-22963이다. CVE-2022-22965 (Spring4Shell) CVE-2022-22965는 Spring Core에서 발생하는 원격코드 실행 취약점이다. https://tanzu.vmware.com/security/cve-2022-22965 해당 경우가 발생하는 전제 조건은 다음과 같다. JDK 9 or higher Apache Tomcat as the Servlet container Packaged ..
Spring Data JDBC는 현재 쓸 만할까? 2년 반쯤 전에 Spring Data JDBC를 살펴보면서 Data JPA를 대체할 수 있을지 고민해보았었다. 2019.07.28 - [Study/Java] - Spring Data JDBC로 Spring Data Jpa를 대체할 수 있을까? 시간이 흘렀고 기존에 살펴보았던 Spring Data JDBC 1.0.9.RELEASE도 현재 2.3.2 버전으로 판올림 되었다. 현재 버전의 Spring Data JDBC가 사용할만한지 살펴보았다. Spring Data JDBC란? Spring Data JDBC는 데이터와 java object를 연계하기 위해 제공되는 Spring Data의 라이브러리 중 하나이다. (DB를 연결하여 사용하기 위해 제공되는 Spring JDBC와 다른 라이브러리이다.) Spring..
Spring MVC에서 video streaming 하기 Spring에서 mp4 동영상 같이 용량이 큰 파일을 내려보내 주려면 어떻게 해야 할까? 파일 읽어 들이고 내보내기 요청에 대해 응답으로 데이터를 내보내야 한다. 자바에서는 데이터를 InputStream으로 가져와서 OutputStream으로 내보낸다. 최상위인 InputStream과 OutputStream 추상 클래스를 extends 한 여러 class를 java.io package에서 제공하는데 대략 다음과 같다. InputStream OutputStream BufferedInputStream BufferedOutputStream ByteArrayInputStream ByteArrayOutputStream DataInputStream DataOutputStream FileInputStream File..
JDK LTS release 2년 주기 전환 및 Spring의 release 정책 JDK version Java SE 5 이전 자바는 JDK 1.0, JDK 1.1, J2SE 1.2, J2SE 1.3, J2SE 1.4처럼 1.x로 버전을 관리하였다. 이후 6, 7, 8과 같은 숫자로 변경이 되었는데 이때 이후 각 버전 별 업데이트가 계속 올라가게 된다. (관련 히스토리는 너무 길어 링크로 대체함) https://namu.wiki/w/Java/%EB%B2%84%EC%A0%84%20%EC%A0%95%EB%B3%B4 각 버전 별 업데이트 관리를 해야 하는 부담이 커지자 오라클은 상용과 오픈소스를 나누기로 하고 openjdk와 oraclejdk를 분리하고 6개월 주기로 major 버전을 변경하고 3년 주기로 LTS (Long Term Support) 버전을 관리하기로 하였다. 이에 대해서는 ..

반응형