민스씨의 일취일장

LogT | Java Spring의 Application Context에 대해 알게된 모든 내용과 고민들 본문

Programming Language & Framework/JAVA & Spring

LogT | Java Spring의 Application Context에 대해 알게된 모든 내용과 고민들

읻민스 2023. 1. 6. 22:54
반응형

Java Spring의 Application Context(줄여서 AC)에 대한 페이지입이다.


2022년 1월 6일

Application Context에 접근하는 방법

// Servlet AC에 접근하는 방법
@Autowired
WebApplicationContext servletAC;

// Root AC에 접근하는 방법
ServletContext ac = request.getSession().getServletContext(); // ApplicationContextFacade 접근
WebApplicationContext rootAC = WebApplicationContextUtils.getWebApplicationContext(sc); // Root AC에 접근

// 또는 간단하게 servletAC를 사용할 수 있다
WebApplicationContext rootAC = servletAC.getParent();

실행 로그

실행 로그에서 AC가 잘 초기화 됐는지 확인할 수 있다.

... Root WebApplicationContext: initialization started
.
.
.
... Root WebApplicationContext: initailization completed in ----ms
.
.
.
... FramworkServlet 'appServlet': initialization started
.
.
.
... FramworkServlet 'appServlet': initialization completed in ---ms

AC 생성시 문제가 생겼는지 파악할 수 있다.


2022년 1월 7일

ApplicationContext 생성 및 사용

ApplicationContext를 생성하는 방법에는 두 가지가 있다. XML 파일을 작성하거나 Annotation을 이용해 자동생성하도록 하는 것이다.

Annotation을 이용한 : 객체 생성

@Component Annotation을 작성해주는 것만으로 자동으로 객체를 ApplicationContext에 Bean으로 설정할 수 있다.

@Component class DayLight(){}

Annotiation을 이용한 : ApplicationContext 내 객체(Bean) 사용

@Autowired 또는 @Resource를 사용하면 ApplicationContext 내 Bean 객체를 호출할 수 있다.

  • @Autowired

Autowired Annotaion을 사용하면 객체의 타입을 이용해 ApplicationContext 내의 객체를 검색한다. 만약 같은 타입의 객체가 여러개 있다면 이름이 같은 것을 찾도록 되어있다.

  • @Resource

Resource Annotaion을 사용하면 객체의 이름을 이용해 ApplicationContext 내의 객체를 검색한다. 만약 이름이 일치하는 객체가 없다면 오류를 발생시킨다.


728x90
반응형