본문 바로가기
728x90

SpringBoot7

springboot 멀티 모듈 프로젝트에서 다른 모듈의 빈을 찾지 못할 때 문제 상황 Spring boot 멀티 모듈 프로젝트에서 다른 모듈의 빈을 찾지 못하는 상황. 두 모듈의 group 이 다름 Ex) A 모듈에서 생성한 a bean을 B 모듈 안에서 주입받고 싶음 A 모듈의 group id: com.example.a B 모듈의 group id: com.example.b 발생 에러 생성자 주입 시 argument를 찾을 수 없다는 에러 발생 원인 및 해결 방법 원인은 두 모듈의 group id가 달라서 그런 것..! (정확히는 패키지가!) 기본적으로는 @SpringBootApplication 애노테이션이 붙은 클래스가 위치하는 곳이 basePackage로 설정되어 해당 패키지 하위 패키지의 컴포넌트를 가져옴 하지만 위 예시처럼 패키지가 다른 경우 별도로 컴포넌트 스캔을 하고.. 2023. 1. 9.
springboot multimodule ❗️ 멀티 모듈 프로젝트가 필요한 이유 예를 들어서 회원 프로그램을 개발한다고 했을 때 여러 개의 서버가 필요하다. ① batch 서버 ② API 서버 등등 하지만 해당 서버들을 단일 프로젝트로 만들게 되면 다음과 같은 문제가 생긴다. 첫번째, 공통적으로 처리해야하는 코드의 처리 : 아예 분리되어 있는 프로젝트이다 보니 공통되는 코드들은 각 프로젝트에 복붙해서 사용할 수 밖에 없고, 한 파일의 코드가 수정되는 경우 다른 프로젝트의 코드도 수정해줘야 한다. 두번째, 접근성 문제 : 프로젝트 수에 따라 IDE 를 실행시켜야 하고 ,, 프로젝트 수가 많아지면 많아 질 수록 개발하는데 어려움이 동반 될 수 밖에 없다. 이런 문제를 해결하기 위해선 멀티 모듈 프로젝트를 사용하면 된다. ❓ 멀티 모듈 프로젝트의 구.. 2023. 1. 1.
springboot 파일업로드 프론트에서 MulitpartFormdata로 전송시에도 마찬가지로 추가 form data 컨트롤러 파라미터로 받을 수 있다. @PostMapping("/add_content") public ResponseEntity addContent(Integer content_board_idx, Integer content_writer_idx, String content_subject, String content_text, MultipartFile content_image) throws IOException { if(content_image==null || content_image.isEmpty()){ mainService.createContent(content_board_idx, content_writer_idx,.. 2022. 7. 1.
springboot h2 인메모리 모드 설정 SpringBoot에서 H2 DB를 사용하는 방법을 알아보도록 하겠습니다. 1. H2 DB란 역시 우선은, H2 DB가 무엇인지부터 간단히 알아보는게 좋을것 같습니다. H2 란? H2DB는 JAVA기반의 RDBMS입니다. 특징 별도의 설치과정이 없고, 저용량에 가볍고 빠르고 JDBC를 지원합니다. 따라서 개발 및 테스트용으로 많이 사용됩니다. Mode Server mode는 다른 RDBMS처럼 데이터를 실제로 저장함으로써, 다른 사용자들이 접속할 수 있으며, server와 API등에서 접속할 필요성이 있을때 사용합니다. Embedded mode는 JDBC를 사용해 동일한 JVM에서 데이터베이스를 엽니다. 가장 빠르고 쉬운 연결모드이지만, 단 하나의 JVM에서만 데이터베이스를 열수 있기 때문에 테스트용 및.. 2022. 6. 30.
Spring boot Dockerfile 작성 프로젝트 최상위 경로에 작성 Dockerfile FROM adoptopenjdk/openjdk11 RUN mkdir /srv/docker-spring COPY . /srv/docker-spring WORKDIR /srv/docker-spring RUN ./gradlew build RUN mv build/libs/*SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"] 1. docker build -t docker/spring . ( "." 필수!) 2. docker image list 3. docker run -d -p 8080:8080 docker/spring -d : 백그라운드 실행 2022. 4. 10.
Spring Gradle 빌드 (인텔리제이 방법 포함) 우측 Graddle -> 프로젝트 -> Tasks -> build -> build 클릭 [터미널로 빌드] gradlew 유닉스용 실행 스크립트이다. > gradle build 위와 같이 하면 로컬에 설치된 gradle을 사용. 이 경우에 Java나 Gradle이 설치되어 있어야하고, 새로받은 프로젝트의 Gradle 버전과 로컬에 설치된 Gradle 버전이 호환되지 않으면 문제가 발생할 수 있다. > ./gradlew build 위와 같이 하면 Gradle Wrapper를 사용해서 위에서 언급한 문제가 발생하지 않는다. 참고 https://jobc.tistory.com/202 Gradle & Build 그리고 IntelliJ의 Build gradle을 알아보기 전에 컴파일, 빌드의 개념을 알아보자 컴파일과.. 2022. 4. 10.
SpringBoot Eureka 서버 설정 설정 build.gradle dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server' implementation 'com.sun.jersey.contribs:jersey-apache-client4:1.19.4' testImplementation 'org.springframework.boot:spring-boot-starter-test' } 설정 @EableEurekaServer 설정 application.yml server: port: 8761 eureka: instance: hostname: localhost client: # 해당 두 속서은 유레카와 성호작용하는 방법을 알려주기 .. 2022. 3. 25.
728x90