본문 바로가기
반응형

springboot20

springboot - RestTemplate 적용 안녕하세요~ 오늘은 스프링부트에서 http통신을 할 때 많이 사용하는 친구입니다. RestTemplate를 적용해보겠습니다. 이제 사용하지 않는가 싶었는데 알아보니 비동기방식이 Deprecated되었군요! 비동기는 webClient를 사용! 동기 방식인 RestTemplate를 적용해보겠습니다. 따로 dependency를 걸 필요는 없습니다. Web을 사용한다면 이미 아래와 같이 디펜던시를 걸었을테니깐요! ㅎㅎ implementation 'org.springframework.boot:spring-boot-starter-web' 이제 필요한건 RestTemplate을 사용할 수 있도록 Bean을 생성하는 것 입니다. @Configuration과 @Bean을 사용해서 아래와 같이 만들어줍니다. @Config.. 2024. 4. 7.
springboot bootBuildImage bootBuildImage라는게 있어서 돌려보았습니다. 아래의 오류 메시지가 떴습니다. What the..ㅋㅋ Image name must be in the form '[domainHost:port/][path/]name', with 'path' and 'name' containing only [a-z0-9][.][_][-] bootBuildImage관련해서 아래의 사이트나 help를 통해 알아봅시다. https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#build-image ./gradlew help --task :bootBuildImage ./gradlew help --task :bootBuildImage.. 2024. 3. 21.
springboot profiles profiles? 이녀석은 언제 사용하는가? 바로 우리가 만든 어플리케이션을 환경에 따라 기동을 시킬때 필요한 내용 입니다. 환경에 따라 기동을 한다는건 로컬에서 실행을하거나 개발서버에서 실행을 한다거나 할때 즉, 개발환경 dev, staging, prod(real)을 뜻 합니다. 보통 배포를 할 때 필요합니다. 로컬에서 개발하다가 개발환경으로 올려서 테스트 하기 위해 배포할 때(혹은 prod) 로컬과 개발환경은 구분되어야 합니다. 여기서 구분되어야할 것은 db설정 같은 정보 입니다. profiles 구성 방법 첫번째 profiles는 보통 하나의 application.yaml에서 구분해서 가져오거나 두번째 application.yaml 즉, 파일 자체를 구분해서 가져올수 있는 방법 2가지 정도로 보시면.. 2024. 3. 3.
springboot 배너변경..ㅋㅋ;; 이게 뭐냐면.. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.0) 스프링부트가 기동할 때 뜨는 문구이다. springboot관련해서 재미난거 같아서 해보았다ㅋㅋ 아래 표처럼 배너변수들을 사용할 수 가 있다. Table 1. Banner variablesVariableDescription ${application.version}.. 2024. 2. 29.
gradle - Could not resolve all dependencies for configuration ':detachedConfiguration4'.Using insecure protocols with repositories, without explicit opt-in, is unsupported. 넥서스에 있는 것을 가져오려는데 오류가 났다. 에러발생 Could not resolve all dependencies for configuration ':detachedConfiguration4'.Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository 'maven(http://maven.xxx.com/어쩌구저쩌구)' to redirect to a secure protocol (like HTTPS) or allow insecure protocols. See https://docs.gradle.org/7.4.1/dsl/org.gradle.api.artifacts.repo.. 2022. 5. 9.
springboot error - Could not write JSON: Can not start an array, expecting field name (context: Object) 에러 발생 .HttpMessageNotWritableException: Could not write JSON: Can not start an array, expecting field name (context: Object); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not start an array, expecting field name (context: Object) (through reference chain: org.springframework.hateoas.EntityModel["content"])] 위의 에러는 테스트 코드를 돌리는데 발생. @Test @DisplayName("입력 값이 잘못된 경우에.. 2022. 3. 25.
Spring Rest Docs 사용하기 api 개발 시에 문서화를 해서 이해관계자에게 전달을 하거나 개발자들간에 공유를 하거나 한다. 이런 문서는 wiki 나 다른 기업에서는 doc이라던지 심지어 한글이라던지 문서를 만들어서 공유한다. 문서화는 개발자한테 정말 곤욕이였다. 개발하기도 바쁜데 문서까지 신경써야 하니 말이다. 혹은 개발은 해놓고 문서와의 동기화가 매번 늦거나 까먹거나 하는 경우가 빈번하게 일어난다. 그래서 문서화를 좀 더 쉽게 하기 위해 아주 오래전엔 javaDocs라고 메소드 위에다가 설명 넣고 만들어줬던 기억이 어렴풋이 난다. 내가 본 근래에는 swagger를 많이 사용하는것 같다. 그런데 이번에 새롭게 알게된 RestDocs라는것을 소개해보려고 한다. https://techblog.woowahan.com/2597/ 위에서 보.. 2022. 3. 22.
HATEOAS(Hypermedia as the engine of application state) HATEOAS(Hypermedia as the engine of application state) You will build a hypermedia-driven REST service with Spring HATEOAS: a library of APIs that you can use to create links that point to Spring MVC controllers, build up resource representations, and control how they are rendered into supported hypermedia formats (such as HAL). HAL이 좀 더 궁금하다면? 클릭 더보기 Hypertext Application Language HAL is a simp.. 2022. 3. 15.
springbootStudy07 - SpringBoot + Jpa + Mustache로 개발 이 강좌는 매주 화요일 사외 스터디를 통해 작성! 스프링 부트와 AWS로 혼자 구현하는 웹서비스 책을 선정!(이동욱 저) 내가 생각하는 커리큘럼이랑 같아서 선정! 음..그런데 책 대로 따라하면 바로 되지는 않음 ㅋㅋㅋ 변경사항 많음이 아쉬움! 지난 스터디 2021.10.13 - [OpenSource/Spring Boot] - springbootStudy01 - Jetbrains toolbox 설치 2021.10.14 - [OpenSource/Spring Boot] - springbootStudy02 - 그래들 기반 springboot project만들기! build.gradle 이해하기 2021.10.19 - [OpenSource/Spring Boot] - springbootStudy03-인텔리J(Int.. 2021. 12. 20.
springbootStudy05- test code를 작성해보자 이 강좌는 매주 화요일 사외 스터디를 통해 작성! 스프링 부트와 AWS로 혼자 구현하는 웹서비스 책을 선정!(이동욱 저) 내가 생각하는 커리큘럼이랑 같아서 선정! 지난 스터디 2021.10.13 - [OpenSource/Spring Boot] - springbootStudy01 - Jetbrains toolbox 설치 2021.10.14 - [OpenSource/Spring Boot] - springbootStudy02 - 그래들 기반 springboot project만들기! build.gradle 이해하기 2021.10.19 - [OpenSource/Spring Boot] - springbootStudy03-인텔리J(IntelliJ)에서 깃헙(github)연동 해보기 2021.10.26 - [OpenS.. 2021. 10. 27.
springbootStudy04 - .gitignore 파일을 만들어보자 이 강좌는 매주 화요일 사외 스터디를 통해 작성! 스프링 부트와 AWS로 혼자 구현하는 웹서비스 책을 선정!(이동욱 저) 내가 생각하는 커리큘럼이랑 같아서 선정! 지난 스터디 2021.10.13 - [OpenSource/Spring Boot] - springbootStudy01 - Jetbrains toolbox 설치 2021.10.14 - [OpenSource/Spring Boot] - springbootStudy02 - 그래들 기반 springboot project만들기! build.gradle 이해하기 2021.10.19 - [OpenSource/Spring Boot] - springbootStudy03-인텔리J(IntelliJ)에서 깃헙(github)연동 해보기 .gitignore파일이란? 요녀석.. 2021. 10. 26.
springboot에서 main args를 사용하려면? 내가 하고 싶은 것은 아래와같이 argument에 날짜를 넣고 그것을 메인쪽에 있는 String[] args에서 받아서 처리하는 것이다. 디버깅을 해보면 args에 위에서 설정했던 값이 들어오는것 처럼 보인다. 그러나 현실은 에러!! 아래에 보면 public void run()쪽에서 예외가 나버린다. java.lang.reflect.InvocationTargetException 콘솔창에 찍힌 오류 내용 Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodA.. 2021. 7. 2.
SpringBoot 구조 - Monolith / Micro k8s 도입 전 클라우드 네이티브 개발에 대해서 알게 되었다. cloud native development? 왜 클라우드 네이티브 개발인가? 클라우드의 이점을 완전하게 활용하려면 애플리케이션에 대한 새로운 접근 방식이 필요하며, 컨테이너를 사용한 패키징, 현대화된 아키텍처 수용, 애자일 기술 활용이 이에 해당 합니다. 클라우드 네이티브 방식은 개발 가속화, 제공 가속화, 변화하는 요구에 대한 적응을 가속화할 수 있는 최적의 방법입니다. 클라우드 네이티브 개발은 바로 DevOps입니다. 이는 컨테이너, 마이크로서비스, 그리고 하이브리드 클라우드입니다. 애플리케이션 서비스를 더욱 신속하게 구축하기 위해 중요한 사항을 수용하도록 관점을 바꾸는 것이 매우 중요합니다. 우선적으로 마이크로서비스에 대해서 알아보도록.. 2021. 1. 4.
@PreDestory란? 이 메소드는 소멸 메소드이며 이전 @PostConstruct와 상반된 개념이다. JSR-250 스펙에 따라 구현 되었다. (걍 자바에서 사용하려면 또는 springframework 2.5미만 버전에서는 javax.annotation 패키지 관련 라이브러리가 필요 함.) Springframework 2.5부터는 사용 가능! 현재 프로젝트에서는 @PostConstruct와 @PreDestory만 사용하고 있다. 하지만 찾아보니 여러가지 방법이 존재했다. 아래의 멋진 사이트를 참고하면 된다. 정리 및 공유 감사용! madplay.github.io/post/spring-bean-lifecycle-methods 그 중 흥미로운 테스트가 있었는데 바로 생성자/소멸자 호출 순서 테스트이다. import javax.a.. 2020. 11. 12.
@PostConstruct란? @PostConstruct? javax.annotation Annotation Type PostConstruct @Documented @Retention(value=RUNTIME) @Target(value=METHOD) public @interface PostConstruct The PostConstruct annotation is used on a method that needs to be executed after dependency injection is done to perform any initialization. This method MUST be invoked before the class is put into service. This annotation MUST be supported on.. 2020. 11. 10.
springboot 2.x 이상 springbatch table문제 해결 방법! id 'org.springframework.boot' version '2.3.2.RELEASE'를 사용 중! 그리고 springbatch개발을 하고 있다! 그런데? 스프링배치를 수행하면서 아래의 오류 발생~~! bad SQL grammar [SELECT JOB_INSTANCE_ID, JOB_NAME from BATCH_JOB_INSTANCE where JOB_NAME = ? and JOB_KEY = ?]; nested exception is java.sql.SQLSyntaxErrorException: Table 'BATCH_JOB_INSTANCE' doesn't exist 스프링배치는 수행관련 내용들을 메타데이터로 남겨서 테이블에 저장하는데 해당 테이블 스키마를 생성하지 않아서 문제가 되었다. https.. 2020. 8. 13.
springbatch setting시 오류: Spring Boot plugin requires Gradle 5 (5.6.x only) or Gradle 6 (6.3 or later). The current version is Gradle 4.10.3 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix-dependency-versions Spring Boot Reference Documentation This section goes into more detail about how you should use Spring Boot. It covers topics such as build systems, auto-configuration, and how to run your applications. We also cover some Spring Boot best practices. Although there is nothing particularly spe docs.s.. 2020. 8. 6.
Spring Boot + Spring Batch 분석_02 2018/10/12 - [OpenSource/Spring Batch] - Spring Boot + Spring Batch 분석_01 저번 분석에서는 Job에 대해서 알아보았습니다. 이제 Step에 대해 알아보도록 하겠습니다.설명하고 있는 소스는 https://spring.io/guides/gs/batch-processing/ 를 참고!// tag::jobstep[] @Bean public Job importUserJob(JobCompletionNotificationListener listener, Step step1) { return jobBuilderFactory.get("importUserJob") .incrementer(new RunIdIncrementer()) .listener(listener) .. 2018. 10. 23.
ace-t의 Spring Boot 따라잡기(기본 - freeMarker 연동) 오랜만에 강좌를 쓰네요^0^ 오늘은 freeMarker라는 템플릿을 이용하여 view를 만들어보겠습니다. ㅎㅎ왜 freemarker냐?! 라고 하시면..회사에서 현재 사용하고 있어서라고..후훗 우선 지난번의 강좌를 통해 새롭게 검토하는 겸 따라서 해보겠습니다. 2016/03/22 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(셋팅편)2016/03/22 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - 헬로우월드찍어보기!)2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - SourceTree에 연결 및 Repository에 올리기)20.. 2016. 8. 28.
ace-t의 Spring Boot 따라잡기(셋팅편) 1. 목표현재 개발중인 프로젝트에서 필요한 api를 Spring Boot로 구현하고자 함.정리를 해두면 다른사람도 좋고 나도 좋고~도랑치고 가재잡고~CouchBase storege - SpringBoot api 2. 환경Mac OS XJDK 8Tomcat 8Gradle 1.3.3Spring BootCouchBase 4.x인텔리J IDE 12git 3. Spring Boot 간단 셋팅!http://start.spring.io/ 에 접속!아래의 그림처럼 필요한 것들을 찾아서 Dependencies 선택! 나중에 찾아서 넣어도 되니 신중하게 생각하지 않아도 됨. 위에서 Group는 패키지라고 생각하시면 됩니다. 또한 Gradle Project Artifact를 설정, 디펜던시 설정 후에 Generaate Pr.. 2016. 3. 22.
반응형