본문 바로가기
반응형

WEB,WAS/Spring21

maven 빌드 속도 개선 목차 1. 예시 mvn clean install[정보] 총 시간: 01:05 h mvn clean install -DskipTests[정보] 총 시간: 18:35분 mvn clean install -Dmaven.test.skip -DskipTests 총 시간: 10:58분 mvn -T 1C clean install -Dmaven.test.skip -DskipTests[정보] 총 시간: 04:00분 -Dmaven.javadoc.skip=true를 추가하여 Archmed가 주석 처리한 대로 생성될 javadoc을 건너뛸 수도 있습니다. mvn -T 1C clean install -Dmaven.test.skip -DskipTests -Dmaven.javadoc.skip=true * imports 를 사용하지 .. 2024. 1. 9.
nested exception is java.util.NoSuchElementException: 'spring.redis.host' doesn't map to an existing object 에러 spring이 갑자기 위 같은 에러 발생 Redis 의 노드 및 샤드 구성을 변경하긴 했는데 변경된지 한참뒤에야 아래와 같은 에러가 발생한 건 이상한일이다. Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisConfig' defined in file [/home/app/example-api/webapps/ROOT/WEB-INF/classes/example/configuration/cache/RedisConfig.class]: Instantiati.. 2023. 8. 30.
[Spring] dependson, lazy 어노테이션 @DependsOn 어노테이션: @DependsOn 어노테이션은 스프링 컨테이너가 해당 빈의 초기화를 수행하기 전에 특정 다른 빈의 초기화를 보장하도록 지정하는 데 사용됩니다. 어노테이션에는 String 배열 형태로 해당 빈이 의존하는 다른 빈의 이름을 지정합니다. 이를 통해 빈들 간의 초기화 순서를 명시적으로 지정할 수 있습니다. @DependsOn 어노테이션을 사용하면 해당 빈의 초기화가 의존하는 다른 빈의 초기화가 완료된 이후에 발생합니다. @Lazy 어노테이션: @Lazy 어노테이션은 스프링 컨테이너가 해당 빈을 실제로 필요한 시점에 초기화하도록 지정하는 데 사용됩니다. 기본적으로 스프링은 모든 빈을 싱글톤으로 생성하고 컨테이너를 로드할 때 즉시 초기화합니다. 하지만 @Lazy 어노테이션을 사용하.. 2023. 7. 7.
jar 파일을 이용하여 스프링 프로젝트 만들기 목차 서버로 실행되고 있는 jar 파일의 repository를 잃어 버려 jar파일을 통하여 스프링 프로젝트를 생성해야하는 일이 생겼다. classes에 파일이 별로 없어 구조가 복잡하지 않은걸로 보아 특별히 구조를 신경써서 복사 붙여넣는건 할필요가 없다. 스프링 부트 프로젝트 다운 https://start.spring.io/ 위 사이트에서 설정하고 다운받으면 됩니다. 설정값은 jar파일에 있는 pom.xml과 최대한 비슷하게 설정합니다. 위에 groupid는 어차피 스프링이니까 무시하시고 나머지를 보고 스프링 initializr에서 최대한 비슷하게 맞춰 받아야합니다. 보시면 spring boot에 맞는 버전이 없을수도 있는데 무시하시고 받은뒤에 pom.xml에서 수정합니다. 나머지는 그대로 맞춰주시고 .. 2023. 6. 29.
spring broken pipe 에러 org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe 해당 에러발생하면서 연속적인 요청 막기 응답시간 증가 가용 스레드 증가 exception 무시 및 block [해결 방법] 1. Request(요청) 후 Response(응답) 기다리기 : 클라이언트는 계속 해서 데이터를 보내지않고 하나의 레코드를 보낸 뒤 서버에서 정상적으로 수신됫다는 응답을 받게한다. (속도가 좀 느려진다.) 2. Exception 무시해버리기 : Client 가 비정상적인 종료를 했을때 Broken pipe Signal이 발생하고 Client의 종료를 서버에서 제어가 불가능 하므로 시그널을 무시한다. 3. 중복 요청 막기 : 클라이언.. 2023. 1. 2.
./gradlew buildimage 에러 Execution failed for task ':bootBuildImage'. > Builder lifecycle 'creator' failed with status code 145 [creator] ERROR: failed to build: exit status 1 > Task :bootBuildImage FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':bootBuildImage'. > Builder lifecycle 'creator' failed with status code 145 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insig.. 2022. 12. 16.
스프링 배치(spring batch) 스프링 배치 소개 엔터프라이즈 도메인 내의 많은 애플리케이션은 미션 크리티컬 환경에서 비즈니스 운영을 수행하기 위해 대량 처리가 필요합니다. 이러한 비즈니스 운영에는 다음이 포함됩니다. 사용자 상호 작용 없이 가장 효율적으로 처리되는 대량 정보의 자동화된 복잡한 처리. 이러한 작업에는 일반적으로 시간 기반 이벤트(예: 월말 계산, 통지 또는 서신)가 포함됩니다. 매우 큰 데이터 세트에서 반복적으로 처리되는 복잡한 비즈니스 규칙의 주기적 적용(예: 보험 혜택 결정 또는 요율 조정). 일반적으로 형식 지정, 유효성 검사 및 트랜잭션 방식의 처리가 필요한 내부 및 외부 시스템에서 받은 정보를 기록 시스템에 통합합니다. 일괄 처리는 기업에서 매일 수십억 건의 트랜잭션을 처리하는 데 사용됩니다. Spring Ba.. 2022. 6. 7.
maven install 관련 에러 리눅스 메이븐설치 sudo apt-get install maven 윈도우 메이븐설치 https://zetawiki.com/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_%EB%A9%94%EC%9D%B4%EB%B8%90_%EC%84%A4%EC%B9%98 윈도우 메이븐 설치 - 제타위키 zetawiki.com mvn clean install -Dmaven.test.skip=true 메이븐 인스톨은 pom.xml을 따라서 하는데 거기서 설정값이 잘못되면 잘안될때가 있다. packaging 부분이 war가 아닌 jar로 되어있어서 에러가 났었음 java -jar [war파일] 해도 안됏엇던거임 2022. 5. 9.
메이븐(mvn) Unknown lifecycle phase ".test.skip=true" 에러 윈도우 파워쉘에서 mvn 실행하는데 에러 발생하였다. 아래와 같이 해줘야합니다. 일반적으로 Maven, svn 등에 Powershell을 사용하는 경우 대시(-)로 시작하는 모든 인수를 이스케이프 처리해야 합니다. Powershell의 이스케이프 문자는 백틱입니다. 따라서 mvn archetype:create `-DgroupId=blah `-DartifactId=blah. , '-'는 Powershell 콘솔에서 maven을 실행할 때 백틱으로 이스케이프해야 하는 특수 문자입니다. 2022. 5. 9.
간단하게 springboot docker image build 부터 push 까지 먼저 docker와 springboot 가 있어야 합니다. springboot는 전에 포스팅 https://rainbound.tistory.com/417 검색해 봤는데 설정이 다 다르고 웹개발자 분들인 경우 좀더 옵션을 넣어서 하다보니 복잡하다. 결국 찾다가 안되서 spring 공홈 가서 찾았습니다. 1. Dockerfile Dockerfile을 프로젝트 폴더 바로안에 만들고 아래를 넣어줍니다. FROM openjdk:8-jdk-alpine ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] 2. 프로젝트내 경로에서 build (gradle인 경우, 공홈의 경우 /\*.jar로 오타가 있습니다.) .. 2022. 4. 19.
spring boot 예제 docker에 이미지 올리려고 spring boot 간단하게 페이지 만드려고 하는데.. 더럽게 안된다. https://start.spring.io/ 링크를 따라 들어가면 설정이 나오는데 project에는 gradle project, java 버전은 자신에게 맞게(저는 8), Dependencies는 ADD 에서 Spring Web을 선택하시면 됩니다. 받고 나서 cmd 창에서 아래와 같이 실행해 줍니다. $ unzip demo.jar $ cd demo $ ./gradlew build $ java -jar build/libs/demo-0.0.1-SNAPSHOT.jar 여기서 저는 실행은 잘 됐는데 자꾸 Whitelabel Error Page This application has no explicit map.. 2022. 4. 19.
gradlew 에러 : Could not find tools.jar. Please check ... gradlew 로 jar파일 생성하려고 하는데 다음과 같은 오류가 발생했다. Could not find tools.jar. Please check that C:\Program Files (x86)\Java\jre1.8.0_311 contains a valid JDK installation java -version 으로 확인해보니 설치가 잘되어있었다. java가 설치 되었는데 왜 이런 오류가 나오지? 혹시몰라서 tools.jar를 받아서 해봣는데 계속 에러가 나옴 이상하다 생각해서 뒤져보니 내가 설치한건 jre. 컴파일 하려면 jdk 가 필요하다... 예전부터 jdk 만 설치해서 jre를 대수롭지않게 그냥 설치했던 모양... 보통 jdk 설치하면 jre(java runtime environment)가 설치.. 2022. 4. 18.
반응형