톰캣 서버에서 JNDI(Java Naming and Directory Interface)를 통해 데이터 소스를 설정하고 사용하는 방식에 대해 설명드리겠습니다.
1. context.xml 설정 파일
먼저, META-INF/context.xml 파일에 데이터 소스를 설정합니다. 이 파일은 웹 애플리케이션의 루트 디렉터리 아래에 위치해야 합니다. 예를 들어, YourWebApp/META-INF/context.xml와 같은 위치에 두어야 합니다.
context.xml 파일 예제:
2. 톰캣 서버 설정
톰캣 서버는 웹 애플리케이션을 배포할 때 이 context.xml 파일을 읽어들여서 정의된 리소스를 설정합니다. 이 설정은 JNDI 이름으로 애플리케이션 내에서 참조될 수 있습니다.
3. 코드에서 JNDI 리소스 참조
애플리케이션 코드에서 JNDI를 통해 설정된 데이터 소스를 참조합니다. 다음은 그 예제입니다:
동작 원리 요약
- context.xml 설정: META-INF/context.xml 파일에 데이터 소스를 정의합니다. 이 파일은 톰캣 서버가 애플리케이션을 배포할 때 읽어들입니다.
- 톰캣 서버가 context.xml을 로드: 톰캣 서버는 애플리케이션 배포 시 context.xml 파일을 읽어 JNDI 네임스페이스에 리소스를 등록합니다.
- 애플리케이션 코드에서 JNDI를 통해 리소스 참조: 애플리케이션 코드는 JNDI를 통해 등록된 데이터 소스를 참조하여 데이터베이스 연결을 얻습니다.
이 방식은 애플리케이션 코드와 데이터베이스 설정을 분리하여 관리할 수 있게 하며, 설정의 변경이 필요할 때 코드 변경 없이 설정 파일만 수정하여 쉽게 반영할 수 있는 장점이 있습니다.
위의 코드는 JNDI(Java Naming and Directory Interface)를 통해 설정된 데이터 소스를 애플리케이션 코드에서 참조하는 방법을 보여줍니다. 이 과정이 context.xml 파일과 어떻게 연관되는지 단계별로 설명드리겠습니다.
1. context.xml 파일 설정
META-INF/context.xml 파일은 톰캣 서버가 애플리케이션을 배포할 때 읽어들여 JNDI 리소스를 설정하는 데 사용됩니다. 예를 들어, context.xml 파일에 다음과 같이 데이터 소스를 정의할 수 있습니다:
2. 톰캣 서버 설정
톰캣 서버는 애플리케이션을 배포할 때 context.xml 파일을 읽고 정의된 리소스를 JNDI 네임스페이스에 등록합니다. 이 설정을 통해 애플리케이션은 JNDI를 통해 데이터 소스를 참조할 수 있습니다.
3. 애플리케이션 코드에서 JNDI 리소스 참조
애플리케이션 코드는 JNDI를 통해 context.xml 파일에서 정의한 데이터 소스를 참조하여 데이터베이스 연결을 얻습니다. 해당 코드를 단계별로 설명하면 다음과 같습니다:
전체 동작 과정
- context.xml 설정 파일 작성: 애플리케이션의 META-INF/context.xml 파일에 데이터 소스 설정을 정의합니다. 이 파일에는 데이터베이스 연결 정보를 포함합니다.
- 톰캣 서버가 context.xml을 읽어 JNDI 리소스를 설정: 톰캣 서버가 애플리케이션을 배포할 때 context.xml 파일을 읽어 정의된 리소스를 JNDI 네임스페이스에 등록합니다. 예를 들어, 위 파일에서 데이터 소스는 "jdbc/mariadb2" 이름으로 등록됩니다.
- 애플리케이션 코드에서 JNDI를 통해 리소스 참조: 애플리케이션 코드에서 JNDI를 통해 데이터 소스를 참조합니다. InitialContext를 생성하고, java:comp/env 환경 컨텍스트를 조회한 후, "jdbc/mariadb2" 리소스를 조회하여 DataSource 객체를 얻습니다. 이 데이터 소스를 통해 데이터베이스 연결을 얻을 수 있습니다.
이 방식은 애플리케이션 코드와 데이터베이스 설정을 분리하여 관리할 수 있게 하며, 설정의 변경이 필요할 때 코드 변경 없이 설정 파일만 수정하여 쉽게 반영할 수 있는 장점이 있습니다.
'Java, Spring 🌱' 카테고리의 다른 글
Eclipse에서 만든 프로젝트 Apache-tomcat(아파치 톰캣)으로 자동 배포(deployment)하기 (0) | 2024.07.04 |
---|---|
댓글 추가될수록 본게시글에도 숫자뜨도록 (0) | 2024.07.03 |
Apache Tomcat(아파치 톰캣) 다운로드 및 실행 (0) | 2024.06.13 |
[JFrame, Swing] WindowBuilder 설치방법 (0) | 2024.05.28 |
[jdbcDriver/mariaDB] mariaDB jdbcdriver 다운 (0) | 2024.05.24 |