- @SpringBootApplication
- 3가지의 어노테이션을 합쳐놓은 어노테이션이다.
- @ComponentScan
- @Component가 붙은 클래스를 찾아서 Bean으로 등록한다.
- @EnableAutoConfiguration
- 스프링 프레임워크의 기본적인 기능을 활성화할 때 사용하는 어노테이션
- @SpringBootConfiguration
- @Configuration이 붙은 클래스 (웹 애플리케이션의 설정 정보를 담는 클래스)를 스프링 프레임워크의 설정 클래스로 등록한다.
- Bean (빈)
- 스프링 프레임워크에서 관리하는 자바 클래스 객체를 의미
- 싱글톤이며 같은 이름의 빈은 선언 불가
- 첫글자는 소문자
- 클래스를 빈으로 만드는 어노테이션 2가지
- @Bean
- Config 클래스 안에서 사용되고, 주로 외부 라이브러리 사용 시 사용
- @Component
- 개발자가 직접 작성한 클래스에 주로 사용
- 빈의 이름을 직접 지정할 수 있다.
- @Component(”이름”)
- @Bean
- 자바 빈을 생성하는 방법 2가지
- @Confiration + @Bean
- @Component + @Autowired - 추천 방법
- 필드(멤버 변수) 주입
- setter 주입
- 생성자(constructor) 주입 (추천하는 방법)
- 스프링 빈을 주입 받는 방법
- 필드 주입
-
@Autowired private Member member1; @GetMapping("field") @ResponseBody public String field() { return "field() 호출됨 - " + member1.getName(); }
-
- setter 주입
-
private Member member3; @Autowired public void setMember(Member member) { this.member3 = member; } @GetMapping("setter") @ResponseBody public String setter() { return "setter() 호출됨: " + member3.getName(); }
-
- 생성자(constructor) 주입 - 추천 방법
- final 키워드 사용 가능 (객체 재할당 방지)
- 생성자로서 미리 주입 받을 수 있다. (null safety 제공)
-
private final Member member4; @Autowired public MainController(Member member) { this.member4 = member; } @GetMapping("constructor") @ResponseBody public String constructor() { return "constructor() 호출됨: " + member4.getName(); }
- 필드 주입
- @Controller
- HTTP 요청을 처리하는 컨트롤러 클래스에 붙인다.
- GET/POST/PUT/DELETE 요청 등을 처리한다.
- @ResponseBody
- 응답을 문자열**(JSON)로 응답**한다는 의미
- @Autowired
- 스프링 빈을 필드로 주입할 때 작성
- private Member member1;
- 클래스를 멤버 변수로 선언하고 그위에 어노테이션 작성
- 스프링 빈을 필드로 주입할 때 작성
728x90
'Back-end > Spring Boot' 카테고리의 다른 글
[Spring Boot] Request Mapping의 종류, @RequestParam (0) | 2024.03.31 |
---|---|
[Spring Boot] Lombok 어노테이션 종류 (0) | 2024.03.31 |
[Spring Boot] Directory 환경, Architecture, Dependencies 종류, POJO (0) | 2024.03.31 |
스프링부트3 백엔드개발자되기 / 5장 데이터베이스 조작이 편해지는 ORM (0) | 2023.11.18 |
스프링부트3 백엔드개발자되기 / 4장 스프링 부트 3와 테스트 (0) | 2023.11.18 |