Spring Annotation 14. @Resource

Spring Framework에서 @Resource 어노테이션은 의존성 주입(Dependency Injection)을 위해 사용됩니다. 이 어노테이션은 JDK 1.6 이상에서 지원되며, 자바 표준 어노테이션(JSR-250)입니다. @Resource 어노테이션은 다음과 같이 사용됩니다. @Resource(name="beanName") private MyBean myBean; 위의 코드에서 name 속성은 빈 이름(bean name)을 지정합니다. @Resource 어노테이션은 스프링에서 빈(bean)을 찾아서 주입합니다. @Resource 어노테이션은 @Autowired 어노테이션과 유사합니다. 하지만 @Autowired 어노테이션은 스프링 전용 어노테이션이고, @Resource 어노테이션은 자바 표준 어..

스프링에서 @RequestMapping 어노테이션을 메서드 위에 선언하는 것과 클래스위에 선언하는 것의 차이

Spring의 @RequestMapping 어노테이션은 HTTP 요청과 매핑되는 메서드 또는 컨트롤러 클래스를 지정하는 데 사용된다. @RequestMapping 어노테이션을 메서드 위에 선언하는 경우, 해당 메서드가 처리하는 요청 경로를 지정할 수 있다. 예를 들어, @RequestMapping("/hello")와 같이 지정하면 "/hello" 경로의 HTTP 요청을 처리하는 메서드가 된다. 반면에 @RequestMapping 어노테이션을 클래스 위에 선언하는 경우, 해당 클래스에 정의된 모든 메서드에 공통으로 적용되는 요청 경로를 지정할 수 있다. 즉, 클래스 수준에서 지정한 URL 경로에 대한 요청이 해당 컨트롤러 클래스의 모든 메서드에서 처리된다는 것을 의미한다. 또한 클래스 수준에서 @Reque..

Spring Annotation 13. @Bean

@Bean이란? @Bean은 스프링의 주요 어노테이션 중 하나로, 개별 빈을 정의하고 생성하는 데 사용됩니다. @Bean 어노테이션은 @Configuration이 붙은 설정 클래스에서 메서드에 적용되며, 해당 메서드가 반환하는 객체를 스프링 컨테이너에서 관리하는 빈으로 등록합니다. 이렇게 생성된 빈은 스프링 컨테이너에서 의존성 주입을 통해 다른 빈들에 주입될 수 있습니다. @Bean 예제 package com.example.demo; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfig { ..

Spring Annotation 12. @Configuration

@Configuration이란? @Configuration은 스프링의 주요 어노테이션 중 하나로, 클래스가 스프링의 빈 정의를 포함하는 설정 클래스임을 나타냅니다. 설정 클래스는 애플리케이션의 전체 설정이나 특정 부분의 설정을 포함하며, @Bean 어노테이션이 붙은 메서드를 사용하여 빈을 정의하고 생성합니다. @Configuration 어노테이션을 사용하면, 스프링 컨테이너가 해당 클래스의 인스턴스를 생성하고 관리할 수 있습니다. @Configuration 예제 package com.example.demo; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration..

Spring Annotation 11. @Repository

@Repository 예제 package com.example.demo; import org.springframework.stereotype.Repository; @Repository public class MyRepository { public String getData() { // 데이터베이스나 다른 저장소로부터 데이터를 가져오는 로직 return "Sample data"; } } 예제에서 MyRepository 클래스는 데이터 액세스 로직을 포함하며 @Repository 어노테이션이 붙어 있어서 스프링 컨테이너에 의해 관리됩니다. MyRepository 클래스의 getData() 메서드는 데이터베이스나 다른 저장소로부터 데이터를 가져오는 로직을 수행합니다. @Repository는 데이터 액세스 계층..

Spring Annotation 10. @Service

스프링 프레임워크에서는 클래스를 빈(Bean)으로 등록하여 의존성 주입(Dependency Injection)과 관리를 쉽게 할 수 있도록 어노테이션을 사용합니다. @Service란? @Service는 스프링의 주요 어노테이션 중 하나로, 비즈니스 로직을 포함하는 클래스를 스프링 빈으로 등록하려 할 때 사용합니다. @Service는 @Component를 상속받아 작성되어 있으며, 특정 계층을 나타내기 위해 사용됩니다. 스프링 컨테이너는 @Service가 붙은 클래스를 찾아서 빈으로 등록하며, 이 과정은 컴포넌트 스캔(Component Scan)이라고 합니다. @Service 예제 package com.example.demo; import org.springframework.beans.factory.ann..

Spring Annotation 9. @Component

스프링 프레임워크에서는 클래스를 빈(Bean)으로 등록하여 의존성 주입(Dependency Injection)과 관리를 쉽게 할 수 있도록 어노테이션을 사용합니다. @Component란? @Component는 스프링의 주요 어노테이션 중 하나로, 클래스를 스프링 빈으로 등록하려 할 때 사용합니다. 이 어노테이션을 사용하면 스프링이 해당 클래스의 인스턴스를 생성하고, 관리 및 의존성 주입을 수행할 수 있습니다. 스프링 컨테이너는 @Component가 붙은 클래스를 찾아서 빈으로 등록하며, 이 과정은 컴포넌트 스캔(Component Scan)이라고 합니다. @Component 예제 package com.example.demo; import org.springframework.stereotype.Compone..

Spring Annotation 8. @ComponentScan

스프링 프레임워크에서는 @ComponentScan 어노테이션을 사용하여 특정 패키지와 그 하위 패키지를 스캔하여 @Component, @Service, @Repository, @Controller 등의 어노테이션이 붙은 클래스를 찾아 빈으로 등록할 수 있습니다. 이를 통해 스프링 빈 컨테이너가 해당 클래스들을 관리하게 되고, 의존성 주입(Dependency Injection)을 수행할 수 있습니다. @ComponentScan이란? @ComponentScan은 스프링 프레임워크의 어노테이션 중 하나로, 특정 패키지와 그 하위 패키지를 스캔하여 @Component, @Service, @Repository, @Controller 등의 어노테이션이 붙은 클래스를 찾아 빈으로 등록하는 역할을 합니다. 기본적으로 ..

Spring Annotation 7. @Transactional

스프링에서 @Transactional 사용법 및 예제 @Transactional은 스프링(Spring) 프레임워크에서 제공하는 어노테이션으로, 트랜잭션 관리를 선언적으로 처리할 수 있게 해줍니다. 이 어노테이션을 사용하면 메서드가 트랜잭션 경계에서 실행되며, 예외가 발생하면 자동으로 롤백됩니다. 이를 통해 데이터베이스 작업을 안전하게 처리할 수 있습니다. 예제 1. 스프링 데이터 JPA를 사용하는 Customer 엔티티와 CustomerRepository 인터페이스 생성 import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.pers..

Spring Annotation 6. @Autowired

스프링에서 @Autowired 사용법 및 예제 @Autowired는 스프링(Spring) 프레임워크에서 사용되는 어노테이션으로, 자동 의존성 주입(Automatic Dependency Injection)을 수행합니다. 이 어노테이션을 사용하면 개발자가 직접 의존성을 주입하는 코드를 작성할 필요 없이, 스프링이 자동으로 필요한 빈(Bean)을 주입해 줍니다. 이를 통해 개발자는 비즈니스 로직에 집중할 수 있습니다. 예제 1. 서비스 클래스 생성 import org.springframework.stereotype.Service; @Service public class GreetingService { public String getGreeting(String name) { return "안녕하세요, " + n..

Spring Annotation 5. @RequestParam

스프링에서 @RequestParam 사용법 및 예제 @RequestParam은 스프링(Spring) 프레임워크에서 사용되는 어노테이션으로, 클라이언트가 전달하는 쿼리 파라미터를 컨트롤러 메서드의 인자로 가져올 수 있게 해줍니다. 이를 통해 요청의 쿼리 파라미터를 편리하게 처리할 수 있습니다. 예제 1. Controller 클래스 생성 import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public clas..

Spring Annotation 4. @PathVariable

스프링에서 @PathVariable 사용법 및 예제 @PathVariable은 스프링(Spring) 프레임워크에서 사용되는 어노테이션으로, URI 경로의 일부를 메서드 파라미터로 가져올 수 있게 해줍니다. 이를 통해 동적으로 변하는 URL 경로를 처리할 수 있어 유연한 웹 애플리케이션 개발이 가능합니다. 예제 1. Controller 클래스 생성 import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController ..