Study/spring 34

[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 어노테이션을 사용하면 수동으로 빈을 등록할 수 있습니다. 일반..

[Java] Spring Controller @RequestBody 사용법

@RequestBody는 스프링에서 클라이언트가 json 형태로 보낸 데이터를 객체로 변환하는 역할을 합니다.주로 Controller에서 데이터를 받을 때 사용합니다. @RequestBody 사용법@RequestBody 사용을 위해 다음과 같은 API를 생성하였습니다.@PostMapping("/post")public String postTest(@RequestBody TestDto dto) { return dto.toString();}...@Getter@Setter@ToString@AllArgsConstructorpublic class TestDto { private Integer number; private String name;} 컨트롤러로 받은 DTO를 문자열로 변환해서 반환하는 A..

[Java] Spring Controller @PathVariable 사용법

스프링 컨트롤러에서 @PathVariable 어노테이션을 사용하는 방법에 대해 설명드리겠습니다. @PathVariable 사용법PathVariable은 URL 경로에서 특정 부분을 추출해서 컨트롤러의 파라미터로 직접 바인딩할 때 사용됩니다.@GetMapping("/users/{id}")public String getUser(@PathVariable Integer id) { return "user id=" + id;}/users/{id}를 /users로 사용하면 id에 null이 들어가는게 아니라 /users라는 URL로 매핑이 됩니다.만약 해당 URL이 있다면 그 URL과 일치하는 API가 실행되고, 없다면 404 오류가 발생합니다.  Spring에 의해 PathVariable로 들어온 값을 지정된..

[Java] Spring @RestController + @ModelAttribute 사용법 및 예제

스프링에서 @RestController와 @ModelAttribute 어노테이션을 같이 사용해서 값을 받는 방법에 대해 설명드리겠습니다. @ModelAttribute 사용법ModelAttribute는 데이터를 객체에 바인딩할 때 사용됩니다. 우선 ModalAttribute를 적용할 객체를 만들었습니다.import lombok.Getter;import lombok.Setter;import lombok.ToString;@Getter@Setter@ToStringpublic class TestDto { private Integer number; private String name;} Lombok의 Getter와 Setter 어노테이션을 사용했습니다.해당 객체를 컨트롤러에서 사용해보겠습니다.@GetMa..

[Java] Spring Controller @RequestParam 사용법 및 예제

스프링 컨트롤러에서 @RequestParam을 사용해서 값을 하나 혹은 여러개 받는 방법을 예제를 통해 설명드리겠습니다. @RequestParam 사용법RequestParam 어노테이션은 HTTP의 쿼리 스트링이나 폼 데이터를 메소드의 파라미터로 바인딩할 때 사용됩니다.기본적인 사용법은 다음과 같습니다. import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class TestController { ..

[Java] Spring Boot 3 MySQL JPA 연동하기

Spring Boot 3에서 JPA를 연동하는 방법을 설명드리겠습니다.(Maven, Gradle 포함) 연동 준비데이터베이스 생성프로젝트에서 사용할 데이터베이스를 생성합니다.spring_boot라는 데이터베이스를 생성하였습니다. 의존성 추가maven ... org.springframework.boot spring-boot-starter-data-jpa com.mysql mysql-connector-j runtime ... gradledependencies { ... implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.mysql:mysql-connector-j' ..

728x90