먼저 spring bean은 Spring Ioc 컨테이너에 등록되어 관리되고 있는 객체라고 말 할 수 있다.
spring bean을 IoC 컨테이너에 등록하는 방법은 크게 2가지로 나뉜다.
1. Component Scan을 통한 등록 ( annotation을 이용한 방법 )
2. 빈 설정파일에 직접 등록
@Component 어노테이션이 붙어 있는 클래스, 인터페이스 등은 자동으로 IoC컨테이너에 등록되게 된다.
@Controller, @Service, @Entity 등도 클래스 파일을 열어보면 내부적으로 @Component 어노테이션을 사용한다.
빈 파일에 직접 등록하는 방식은 아래와 같이 진행된다.
@Configuration public class SampleConfiguration { @Bean public SampleController sampleController() { return new SampleController; } }
결론적으로 말하면, Spring Bean 이라는 것은 Spring Ioc 컨테이너에 의해 관리되는 객체이다. IoC 컨테이너에서 관리한다는 의미는 객체를 생성하고, 생명주기(life Cycle)를 수행하고, 의존성 주입(Dependency Injection) 한다는 것을 말한다.
java bean은 jsp에서 주로 사용되는 것으로 자바 코드로 작성된 class이며, 주로 데이터 전달을 위해 사용된다.
어떻게 보면 DTO나 VO와 비슷한 역할을 한다고 생각해도 될 것 같다. 또한 하나의 컴포넌트라고도 말 할 수 있다.
java bean 규약은 아래와 같다.
- 클래스는 패키지화 되어야한다.
- 멤버변수는 property(프로퍼티)라고 부른다.
- 접근제한자는 private
- 외부접근은 getter, setter로 접근한다.
- 프로퍼티가 boolean이면 get이 아니라 is사용해도 된다.
Spring Bean의 scope와 Jsp Java Bean의 scope는 조금 다른 의미를 갖는다.
spring bean의 경우에는 싱글톤으로 관리되냐, 아니냐로 나뉘게 되고,
jsp java bean의 경우에는 page, request, session, application로 나뉘게 되어 언제 소멸하는지를 지정해준다.
'컴퓨터 > Spring + JPA' 카테고리의 다른 글
[인텔리제이 DTO generator] json data 자동으로 entity class 생성하기 (0) | 2021.06.29 |
---|---|
[해결방법] JPA MySQL server version for the right syntax to use (0) | 2021.03.13 |
관계형 db vs 그래프 db에 대한 고민 (0) | 2021.03.07 |
[Spring JPA] OneToOne N+1 문제 (원인 해결방법 포함) (0) | 2021.01.10 |
[해결방법] [spring boot] ResourceHttpRequestHandler - Path with "WEB-INF" or "META-INF" (0) | 2020.11.07 |