'JAVA > 툴 및 팁' 카테고리의 다른 글
| intelliJ GUI를 이용한 GIT 브랜치 merge 방법 (0) | 2021.04.30 |
|---|---|
| sentry logback(java) 연동 방법 (0) | 2021.01.12 |
| 오라클 사이트에서 JDK8 다운로드해서 리눅스 설치용 wget 명령어 생성 방법 (0) | 2019.05.06 |
| nexus 설치 및 셋팅 (0) | 2019.03.22 |
| pinpoint 설치 방법- 1.8.1 버전 (0) | 2018.12.21 |
| intelliJ GUI를 이용한 GIT 브랜치 merge 방법 (0) | 2021.04.30 |
|---|---|
| sentry logback(java) 연동 방법 (0) | 2021.01.12 |
| 오라클 사이트에서 JDK8 다운로드해서 리눅스 설치용 wget 명령어 생성 방법 (0) | 2019.05.06 |
| nexus 설치 및 셋팅 (0) | 2019.03.22 |
| pinpoint 설치 방법- 1.8.1 버전 (0) | 2018.12.21 |
Spring API 개발시 예외(에러) 처리 방법을 메모합니다. 실제로 회사 등의 프로젝트에서 제가 선호하는 방식입니다.
- 특정 케이스, 레거시의 하위호환성을 유지해야하는 경우는 어쩔수 없지만ㅠ (ex. 갑에서 에러도 200으로 응답해달라고 요청)
[참고 링크]
1. 트위터 : https://developer.twitter.com/en/docs/basics/response-codes
2. 카카오 : https://developers.kakao.com/docs/restapi/quick-reference#응답-코드
3. 기타
- 어떤분이 내가 사용하는 방법과 유사하게 Spring 기반으로 정리해두신 링크입니다.
- 다른점은, 저는 다른 개발자와 커뮤니케이션& 개발자가 정의서를 따로 보지 않도록 하기 위해서 에러코드를 숫자보다 문자로 처리하는걸 선호합니다.
- https://cheese10yun.github.io/spring-guide-exception/#undefined
| Spring restTemplate + OkHttp(for http 2 request) (0) | 2019.09.19 |
|---|---|
| java spring mysql에서 쿼리 로그 남기기(with log4jdbc) (0) | 2019.09.06 |
| spring MVC에서 리다이렉트 요청인지 체크하는 메소드 (0) | 2019.02.06 |
| Spring boot에서 셧다운 이벤트 발생시 리스너 샘플 (0) | 2019.01.21 |
| Spring RestTemplate 샘플 : 타임아웃 및 pool설정 등의 튜닝버전 (0) | 2018.12.08 |
메모
- Spring boot +JSP 사용시 제약이 조금있다. 그래서 가능하면 thymelef 등을 사용하는게 좋음
- 개인적으로 주변 회사에서는 thymelef를 선호하는 편인듯..
- 나는 Spring boot가 나오기 몇 년전에 FreeMarker를 한참썻는데 이제 쓸데가 없어짐.. 기억도 안나고..(지금 쓰고 있는 JSP도 가능하면 그만 쓰려고 노력 중)
본론으로 들어가서 spring boot 프로젝트의 방향성과 cloud 등에서 embedded servlet container를 선호할수 밖에 없는 제약 등으로 JSP는 이제 그만 사용해야할 듯 함(현재 AWS에서는 JSP를 따로 deploy하고 쓰고 있지만 좋은 방법은 아니고..)
참고
29.4.5 JSP Limitations(링크)
When running a Spring Boot application that uses an embedded servlet container (and is packaged as an executable archive), there are some limitations in the JSP support.
java -jar, and will also be deployable to any standard container. JSPs are not supported when using an executable jar.error.jsp page does not override the default view for error handling. Custom error pages should be used instead.There is a JSP sample so that you can see how to set things up.
| IntelliJ에서 Maven multi module + spring boot + jsp 환경에서 JSP 못찾는 문제 해결 (0) | 2022.05.23 |
|---|---|
| spring boot admin 적용시 client호출에 인증처리를 위한(actuator) 방법 (0) | 2020.08.28 |
| spring boot 핫스왑 적용방법(with springloaded) (0) | 2019.04.16 |
| spring boot embedded tomcat 사용시 특정 주기마다 느려지는 원인파악 디버깅 메모 - 1 (0) | 2016.07.04 |
| 파일업로드 Rest full 기능 샘플 소스 (0) | 2016.06.28 |
| sentry logback(java) 연동 방법 (0) | 2021.01.12 |
|---|---|
| pinpoint 설치 방법- 1.8.4 버전 (0) | 2019.06.26 |
| nexus 설치 및 셋팅 (0) | 2019.03.22 |
| pinpoint 설치 방법- 1.8.1 버전 (0) | 2018.12.21 |
| pinpoint 설치 방법 메모 (0) | 2017.11.16 |
참고: https://github.com/spring-projects/spring-loaded
목적: spring boot로 개발 도중에 was 재 시작 없이 작업 중인 소스코드를 적용하여 생산성 향상
springloaded 라이브러리를 maven 디펜더시에 추가
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
springloaded jar파일이 로컬 .m2에 저장됨
ex) C:\Users\{계정명}\.m2\repository\org\springframework\springloaded\1.2.8.RELEASE\springloaded-1.2.8.RELEASE.jar
spring boot의 config에서 VM Arguments에 설정
ex) -javaagent:C:\Users\{계정명}\.m2\repository\org\springframework\springloaded\1.2.8.RELEASE\springloaded-1.2.8.RELEASE.jar -noverify
ex) 샘플 캡쳐
기타
버전 및 파일 path 체크
maven에 추가하지 않고, 해당 jar파일만 다운로드해서 사용해도 무방할 듯(프로젝트에 불필요한 라이브러리가 추가되지 않음)

intellij에서는 아래처럼 셋팅

| IntelliJ에서 Maven multi module + spring boot + jsp 환경에서 JSP 못찾는 문제 해결 (0) | 2022.05.23 |
|---|---|
| spring boot admin 적용시 client호출에 인증처리를 위한(actuator) 방법 (0) | 2020.08.28 |
| Spring boot 에서 JSP의 제약 (0) | 2019.05.26 |
| spring boot embedded tomcat 사용시 특정 주기마다 느려지는 원인파악 디버깅 메모 - 1 (0) | 2016.07.04 |
| 파일업로드 Rest full 기능 샘플 소스 (0) | 2016.06.28 |
| pinpoint 설치 방법- 1.8.4 버전 (0) | 2019.06.26 |
|---|---|
| 오라클 사이트에서 JDK8 다운로드해서 리눅스 설치용 wget 명령어 생성 방법 (0) | 2019.05.06 |
| pinpoint 설치 방법- 1.8.1 버전 (0) | 2018.12.21 |
| pinpoint 설치 방법 메모 (0) | 2017.11.16 |
| JAVA 웹 개발환경 셋팅 - STS(Eclipse) (0) | 2016.12.18 |
커맨드 예)
#다운로드
wget 'https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_x64_linux_hotspot_11.0.17_8.tar.gz' -O ~/apps/OpenJDK11U-jdk_x64_linux_hotspot_11.0.17_8.tar.gz
#압축해제
cd ~/apps && tar -xzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.17_8.tar.gz && rm -f OpenJDK11U-jdk_x64_linux_hotspot_11.0.17_8.tar.gz
#심볼릭링크(필요시)
cd ~/apps && ln -s jdk-11.0.7+10 jdk_11
#DNS TTL수정(10초로, 어플리케이션마다 틀려야할 수 있음)
echo 'networkaddress.cache.ttl=10' >> ~/apps/jdk-11.0.17+8/conf/security/java.security
Releases · adoptium/temurin11-binaries
Temurin11 binaries. Contribute to adoptium/temurin11-binaries development by creating an account on GitHub.
github.com
| java(with spring)에서 MultipartFile를 통한 웹에서 사설 인증키를 읽어서 String으로 변환하는 샘플 소스 (0) | 2020.04.28 |
|---|---|
| IMAP 이메일을 가져오는 샘플 소스 (0) | 2019.09.24 |
| apache http client의 타임아웃 관련(기본 값 등) - 버전마다 틀릴 수 있음 (0) | 2019.02.08 |
| Java 변수 null처리에 따른 GC 테스트 샘플 (0) | 2018.06.18 |
| JSP파일에서 JSTL의 html변경 후 남은 whitespace를 없애는 프로그램 Java 버전 (0) | 2017.07.12 |
apache http client의 타임아웃 관련(기본 값 등) - 버전마다 틀릴 수 있으며 아래는 4.5.3 기준
* 요약
- 0으로 셋팅하면 무한이고, 음수로 셋팅하면 OS 시스템의 기본값을 따른다.
- 리눅스 계열에서 시스템 기본값은 net.ipv4 timeout time wait쪽을 살펴보면 되는 것 같음
[참고 - 소스]
/**
* Determines the timeout in milliseconds until a connection is established.
* A timeout value of zero is interpreted as an infinite timeout.
* <p>
* A timeout value of zero is interpreted as an infinite timeout.
* A negative value is interpreted as undefined (system default).
* </p>
* <p>
* Default: {@code -1}
* </p>
*/
public int getConnectTimeout() {
return connectTimeout;
}
| IMAP 이메일을 가져오는 샘플 소스 (0) | 2019.09.24 |
|---|---|
| openjdk 11설치 방법 및 기본 설정- java 11 설치 (0) | 2019.03.18 |
| Java 변수 null처리에 따른 GC 테스트 샘플 (0) | 2018.06.18 |
| JSP파일에서 JSTL의 html변경 후 남은 whitespace를 없애는 프로그램 Java 버전 (0) | 2017.07.12 |
| STS(Eclipse) 기본 셋팅 (0) | 2016.06.18 |