SPRING

SPRING 로딩 구조, 어노테이션

Adev 2022. 11. 25. 00:01

스프링 프레임워크 동작 -> 필요한 객체 등록 -> 의존성 주입 수행 

 


ex) 
스프링 프레임워크 동작


-> 스프링이 사용하는 메모리 영역인 Context를 만듦 

(스프링 컨테이너인 ApplicationContext 객체 생성 - 스프링은 필요한 객체들을 생성·주입 등을 관리하는 '컨테이너'나 '팩토리'기능이 있다.) 


-> 객체들에 대한 설정파일인 root-context.xml이 <context:component-scan>태그에 등록된 패키지들을 스캔.


-> 해당 패키지들의 클래스 중 @Conponent 어노테이션이 존재하는 클래스의 인스턴스를 생성

(@Component 해당 클래스가 스프링에서 관리해야하는 대상임을 표시)


-> @Autowired에 따라 객체 주입시킴

 

 

1.1 설정파일

 

1) web.xml 

: Tomcat 구동과 관련된 설정

(web.xml : root-context.xml·DispatcherServlet(servlet-context.xml)의 경로 설정, ContextLodaderListener 등록) 

 

2) root-context.xml

: 스프링 프레임워크에서 관리해야하는 객체(Bean)을 설정하는 설정 파일이다.

View와 관련되지 않은 객체(비즈니스 로직)를 정의한다. ex) Services, Repositories

주로 클래스들을 이용해 스프링의 Bean으로 등록할 때 사용한다. 외부 jar 파일 등의 클래스를 <bean> 태그 이용해 작성한다.

 

3) servlet-context.xml

: 스프링 MVC에서 DispatcherServlet 클래스가 웹 관련 처리작업 시 사용한다. 

View와 관련된 객체를 정의한다. ex) Controllers, ViewResolver, HandlerMapping

 

4) pom.xml (project object model)

: 프로젝트를 빌드·관리하는 Maven의 빌드정보를 담고있는 파일로, 의존을 포함한다.

수정 후에는 프로젝트 우클릭 -> Maven -> Update project를 실행해야한다.

 

 


2. 어노테이션

 

+ Lombok 관련 어노테이션
- @Log4j : 로그 객체 생성. 로그를 기록하는 Logger를 변수로 생성하며 별도의 로그를 설정할 필요가 없다.
- @Setter : 컴파일 시 set메소드 자동 생성
ex) @Setter(onMethod = @_({ @Autowired })) : 생성되는 set메소드에 @Autowired 어노테이션 추가
- @Data : @ToString, @EqualsAndHashCode, @Getter/@Setter, @RequiredArgsConstructor을 결합

 


+ Spring 관련 어노테이션 (@Controller, @Component, @service, @Repository)

- @Controller : 해당 Class가 spring mvc의 컨트롤러를 구현한 Class라는 것을 지정

- @Component : 해당 클래스가 스프링에서 객체로 만들어 관리해야하는 대상임을 표시
- @Autowired : 타입이 맞는 객체를 주입해달라는 표시

- @RequestMapping : 클라이언트의 요청을 처리할 메서드 설정. 해당 메서드에서 처리할 URI를 값으로 가짐

- @service : service 영역 접근 선언

- @Repository : DAO 클래스임을 선언...

'SPRING' 카테고리의 다른 글

SPRING 파일 업로드 다운로드  (0) 2023.01.17
SPRING 페이징 처리 (pagination)  (0) 2022.11.30
SPRING 기본설정 (XML, JAVA 공통부분)  (0) 2022.11.24
SPRING Database 연동과 Jdbc 지원  (0) 2022.11.18
HTML 이외의 View 구현  (0) 2022.11.17