Study/spring 39

[Java] Spring Boot 3 @Valid 어노테이션 사용 예제

Spring Boot 3 버전에서 @Valid 어노테이션을 사용해서 객체를 검증하는 방법입니다.ModelAttribute(Param)과 RequestBody 객체 2가지 방식을 예시로 설명하겠습니다.  Valid 사용 전 준비Valid 사용을 위해 라이브러리를 추가합니다.# pom.xml org.springframework.boot spring-boot-starter-validation # build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-validation'}spring-boot-starter-validation 라이브러리를 추가합니다.  어노테이션 사용을 위한..

[Java] Spring Boot .properties, .yml 파일 여러개로 분리하기

Spring 프로젝트에는 각종 설정 값들이 모여있는 application.properties, application.yml 파일이 있습니다.한 파일 안에 설정값을 넣게 되면 나중에 프로젝트가 더 커지면 설정값이 너무 많아서 찾거나 관리하기 힘들어집니다.그래서 개발 환경이나 용도에 맞게 분리하는 것이 좋습니다. 파일 분리 방법분리할 설정 파일입니다. 여기서 sql 관련 로그 부분을 따로 빼서 별도의 파일로 만들어 관리하도록 하겠습니다. src/main/resources 경로에 properties 파일을 하나 더 생성합니다.로그 설정만 따로 분리할거니까 application-log.properties라고 지었습니다.yml을 사용한다면 application-log.yml로 생성하면 됩니다.    그리고 이 파..

[Java] Spring Boot 3 JPA 쿼리 파라미터 바인딩 로그 설정

Spring Boot에서 JPA 쿼리 로그를 설정하는 방법과 로그에 ?로 표시되는 바인딩 파라미터 값을 표시하는 방법에 대해 설명드리겠습니다. 쿼리 관련 로그 설정JPA 쿼리를 로그에 표시하도록 설정하는 방법은 여러가지가 있습니다.# application.propertiesspring.jpa.show-sql=truespring.jpa.properties.hibernate.format_sql=truespring.jpa.properties.hibernate.show_sql=truespring.jpa.properties.hibernate.use_sql_comment=truespring.jpa.properties.hibernate.highlight_sql=truelogging.level.org.hibernate..

[Java] Spring Jpa Repository 메소드 명명규칙 정리

Jpa Repository를 상속받은 인터페이스에서 findByXXX 형태로 메소드를 만들면 JPA에 의해 WHERE 절이 추가되었습니다.그 외에도 다양한 조건을 사용할 수 있는데, 어떤 조건들을 사용할 수 있는지 정리해드리겠습니다. 기본 규칙메소드설명findAll()전체 데이터를 조회할 수 있습니다.findBy()조건을 추가하여 전체 데이터를 조회할 수 있습니다.findTop5By()조건에 맞는 데이터 중 상위 5건만 가져옵니다.findDistinctBy()중복을 제거하여 조회할 수 있습니다.findFirstBy()조회된 데이터 중 1건만 가져옵니다.count()전체 행 수를 조회합니다.countBy()조건에 맞는 전체 행 수를 조회합니다.save()단일 데이터를 저장합니다.saveAll()여러 건의 ..

[Java] Spring Boot Jpa findBy 단일, 여러개 조건 검색 사용법

Spring Data Jpa 쿼리 메소드란?Spring-data-jpa의 JpaRepository는 메소드 이름 규칙에 따라 쿼리를 만들어주는 기능이 있습니다.쿼리 메소드 기능을 사용해서 AND 조건, OR 조건 등 여러 조건을 사용해서 쿼리를 생성할 수 있습니다.Spring Data Jpa Query 메소드 공식 문서 바로가기 JPA Query Methods :: Spring Data JPAAs of Spring Data JPA release 1.4, we support the usage of restricted SpEL template expressions in manually defined queries that are defined with @Query. Upon the query being ru..

[Java] Spring Boot JpaRepository 사용법 정리

Spring에서 JpaRepository 기본 설정 방법과 사용하는 방법에 대해 설명드리겠습니다. 기본 설정JpaRepository를 사용하기 위한 기본 설정은 아래 글을 참고하시면 됩니다.[Java] Spring Boot 3 MySQL JPA 연동하기 [Java] Spring Boot 3 MySQL JPA 연동하기Spring Boot 3에서 JPA를 연동하는 방법을 설명드리겠습니다.(Maven, Gradle 포함) 연동 준비데이터베이스 생성프로젝트에서 사용할 데이터베이스를 생성합니다.spring_boot라는 데이터베이스를 생성하였priming.tistory.com 엔티티 생성하기JpaRepository를 사용하기 위해서는 엔티티가 필요합니다.간단한 엔티티를 하나 만들었습니다.import jakarta...

[Java] Spring @Component, @Service, @Controller 차이

스프링에서 객체를 빈으로 등록해주는 어노테이션은 여러가지가 존재합니다.@Controller, @Service, @Component, @Repository 등의 어노테이션을 사용하는 객체는 스프링에 의해 자동으로 빈으로 등록됩니다. @Component@Component 어노테이션은 스프링이 자동으로 빈을 찾을 수 있게 해줍니다.개발자가 새로 만든 객체를 빈으로 등록하고 싶을 때 해당 클래스에 @Component 어노테이션을 선언하면 스프링이 실행될 때 찾아서 빈으로 등록할 수 있습니다. @Service나 @Controller, @Repository, @Configuration과 같은 어노테이션에는 모두 @Component 어노테이션이 포함되어 있기 때문에 빈 등록이 됩니다.다만, 클래스가 사용되는 계층이 ..

[Java] Spring @Value 어노테이션 사용법

스프링의 @Value 어노테이션은 @ConfigurationProperties처럼 외부 설정 값을 가져오기 위해 사용됩니다.@ConfigurationProperties는 외부 설정 값을 객체로 매핑할 때 사용되고, @Value는 단일 값을 매핑할 때 사용합니다. @Value 사용법다음과 같이 외부 설정 값을 구성하겠습니다.# application.propertiesapp.test.name=Test App Nameapp.test.additional.property1: property1app.test.additional.property2: property2# application.ymlapp: test: name: Test App Name From YML additional: property1..

[Java] Spring @ConfigurationProperties 어노테이션 사용법

스프링에서 @ConfigurationProperties 어노테이션은 외부의 값을 주입받기 위해 사용됩니다.@ConfigurationProperties로 변수 혹은 내부 객체에 매핑하는 방법에 대해 설명드리겠습니다. @ConfigurationProperties.properties와 같은 외부 구성 파일에 정의된 값들을 자바 객체에 매핑할 수 있습니다.다음과 같이 사용할 수 있습니다. 변수 매핑 방법application.properties 파일에 다음과 같이 프로퍼티를 추가합니다.# application.propertiesapp.test.name=Test App Name# application.ymlapp: test: name: Test App Name 추가한 프로퍼티를 자바 객체로 매핑하려면 아래처..

[Java] Spring Boot @Configuration과 @Bean 어노테이션 사용법

스프링 부트에서 @Configuration과 @Bean 어노테이션을 사용하는 방법에 대해 설명드리겠습니다.스프링 부트 3 버전에서 진행되었지만, 2버전에도 적용이 가능합니다. @Configuration 이란?@Configuration은 @Bean이 정의되어있는 클래스에서 사용되는 어노테이션입니다.스프링은 @Configuration 어노테이션이 선언되어있는 클래스에서 @Bean을 찾아서 빈으로 등록합니다. 스프링에서 빈(Bean)은 스프링 IoC 컨테이너에 의해 관리되는 객체를 의미합니다.자주 사용되는 컨트롤러, 서비스, 리포지토리 객체도 어노테이션에 의해 자동으로 스프링 IoC 컨테이너에 의해 관리됩니다.@Configuration과 @Bean 어노테이션을 사용하면 수동으로 빈을 등록할 수 있습니다. 일반..

728x90