A.1) 스프링 모듈의 종류와 특징
스프링 모듈 이름
- 스프링 모듈은 jar 확장자를 가진 파일이다. 모든 파일의 이름은 명명 규칙에 따라 두 가지로 만들어져 있다.
- 스프링 모듈은 기본적으로 OSGi의 모듈 명명 규칙을 따라서 패키지 이름과 모듈 버전으로 구성된다.
스프링 모듈은 OSGi의 모듈 조건을 충족하는 OSGi 번들이기도 하므로 OSGi 플랫폼에서 바로 가져다 사용할 수 있다.
물론 OSGi가 아닌 일반 JavaEE나 JavaSE 환경에서도 아무런 문제 없이 사용할 수 있다.
org.springframework.core-3.0.7.RELEASE.jar - Maven의 명명 규칙을 따라 만들어진 스프링 모듈 파일도 있다. Maven 모듈 이름에는 패키지를 사용하지 않는다.
Maven이나 Ivy를 통해 접근할 수 있는 Maven Central 리포지토리에는 Maven 스타일 이름을 가진 파일을 찾을 수 있다.
spring-core-3.0.7.RELEASE.jar - 위 두 개의 파일은 이름은 다르지만 그 내용은 완전히 동일하다.
- 스프링 모듈은 기본적으로 OSGi의 모듈 명명 규칙을 따라서 패키지 이름과 모듈 버전으로 구성된다.
스프링 모듈 추가
- 스프링 모듈을 프로젝트에 추가하는 방법은 두 가지가 있다.
- 스프링 배포판에 포함된 모듈을 직접 추가하는 방법이 있다.
- 또한 Maven이나 Ivy의 의존 라이브러리 관리 기능을 이용해 모듈 리포지토리에서 자동으로 추가되게 하는 방법도 있다.
- 스프링 모듈을 얻을 수 있는 가장 손쉬운 방법은 스프링 배포판을 이용하는 것이다.
- 배포판 파일의 압축을 풀고 dist 폴더를 열어보면 스프링 모듈을 찾을 수 있다.
이를 이용해 사용할 기능에 따라 적절한 모듈 파일을 프로젝트에 포함시켜주면 된다. - 스프링 배포판에 포함된 모듈 파일은 OSGi 호환 모듈 이름을 갖고 있다.
- 수동으로 모듈을 추가할 때는 모듈 의존관계에 따라서 필요한 의존모듈을 빼먹지 않도록 주의해야 한다.
- 배포판 파일의 압축을 풀고 dist 폴더를 열어보면 스프링 모듈을 찾을 수 있다.
- Maven을 이용해 의존 라이브러리를 관리한다면 pom.xml 파일의 의존정보 설정만으로 필요한 스프링 모듈을 가져올 수 있다.
- 스프링 모듈은 Maven Central 리포지토리에 등록되어 있다.
따라서 리포지토리를 따로 지정하지 않아도 스프링 모듈을 가져올 수 있다. - 이때는 Maven 스타일의 모듈 이름을 사용해서 스프링 모듈을 가져와야 한다.
- OSGi 이름을 가진 모듈을 사용하려면 스프링소스에서 제공하는 Maven 리포지토리를 지정해준 후 가져와야 한다.
- Maven을 이용하면 전이적 의존관계 관리기능이 적용되므로 필수 의존관계에 있는 모듈이 자동으로 추가된다.
따라서 모든 모듈을 일일이 지정할 필요가 없다.
- 스프링 모듈은 Maven Central 리포지토리에 등록되어 있다.
// core 모듈에 대한 Maven 의존 라이브러리 선언
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId> // 스프링 모듈의 Maven 이름
<version>3.0.7.RELEASE</version>
</dependency>
// OSGi 이름을 가진 core 모듈에 대한 Maven 의존 라이브러리 선언
<repository>
<id>com.springsource.repository.bundles.release</id>
<name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Release</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
</repository>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.core</artifactId> // 스프링 모듈의 OSGi 이름
<version>3.0.7.RELEASE</version>
</dependency>
스프링 모듈 목록
- AOP (AOP) : org.springframework.aop / spring-aop
- ASM (ASM 재패키징) : org.springframework.asm / spring-asm
- Aspects (AspectJ 지원) : org.springframework.aspects / spring-aspects
- Beans (빈 팩토리) : org.springframework.beans / spring-beans
- Context (애플리케이션 컨텍스트) : org.springframework.context / spring-context
- Context, Support (컨텍스트 부가 기능) : org.springframework.context/support / spring-context-support
- Core (공통 기능) : org.springframework.core / spring-core
- Expression (SpEL) : org.springframework.expression / spring-expression
- Instrument (스프링 Java Agent) : org.springframework.instrument / spring-instrument
- Instrument, Tomcat (톰캣 클래스 로더) : org.springframework.instrument.tomcat / spring-instrument-tomcat
- JDBC (JDBC) : org.springframework.jdbc / spring-jdbc
- JMS (JMS) : org.springframework.jms / spring-jms
- ORM (Hibernate, JPA 등) : org.springframework.orm / spring-orm
- OXM (OXM) : org.springframework.oxm / spring-oxm
- Test (테스트) : org.springframework.test / spring-test
- Transaction (트랜잭션) : org.springframework.transaction / spring-tx
- Web (웹 공통) : org.springframework.web / spring-web
- Web.Portlet (포틀릿) : org.springframework.web.portlet / spring-webmvc-portlet
- Web.Servlet (서블릿) : org.springframework.web.servlet / spring-webmvc
- Web.Struts (스트럿츠 1 지원) : org.springframework.web.struts / spring-struts
'Java-Spring > 토비의 스프링 3.1' 카테고리의 다른 글
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 의존 라이브러리(0) (0) | 2024.05.27 |
---|---|
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 모듈(2) (0) | 2024.05.20 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 모듈(0) (0) | 2024.05.18 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 프로젝트 시작하기 (3) (0) | 2024.05.17 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 프로젝트 시작하기 (2) (0) | 2024.04.25 |
A.1) 스프링 모듈의 종류와 특징
스프링 모듈 이름
- 스프링 모듈은 jar 확장자를 가진 파일이다. 모든 파일의 이름은 명명 규칙에 따라 두 가지로 만들어져 있다.
- 스프링 모듈은 기본적으로 OSGi의 모듈 명명 규칙을 따라서 패키지 이름과 모듈 버전으로 구성된다.
스프링 모듈은 OSGi의 모듈 조건을 충족하는 OSGi 번들이기도 하므로 OSGi 플랫폼에서 바로 가져다 사용할 수 있다.
물론 OSGi가 아닌 일반 JavaEE나 JavaSE 환경에서도 아무런 문제 없이 사용할 수 있다.
org.springframework.core-3.0.7.RELEASE.jar - Maven의 명명 규칙을 따라 만들어진 스프링 모듈 파일도 있다. Maven 모듈 이름에는 패키지를 사용하지 않는다.
Maven이나 Ivy를 통해 접근할 수 있는 Maven Central 리포지토리에는 Maven 스타일 이름을 가진 파일을 찾을 수 있다.
spring-core-3.0.7.RELEASE.jar - 위 두 개의 파일은 이름은 다르지만 그 내용은 완전히 동일하다.
- 스프링 모듈은 기본적으로 OSGi의 모듈 명명 규칙을 따라서 패키지 이름과 모듈 버전으로 구성된다.
스프링 모듈 추가
- 스프링 모듈을 프로젝트에 추가하는 방법은 두 가지가 있다.
- 스프링 배포판에 포함된 모듈을 직접 추가하는 방법이 있다.
- 또한 Maven이나 Ivy의 의존 라이브러리 관리 기능을 이용해 모듈 리포지토리에서 자동으로 추가되게 하는 방법도 있다.
- 스프링 모듈을 얻을 수 있는 가장 손쉬운 방법은 스프링 배포판을 이용하는 것이다.
- 배포판 파일의 압축을 풀고 dist 폴더를 열어보면 스프링 모듈을 찾을 수 있다.
이를 이용해 사용할 기능에 따라 적절한 모듈 파일을 프로젝트에 포함시켜주면 된다. - 스프링 배포판에 포함된 모듈 파일은 OSGi 호환 모듈 이름을 갖고 있다.
- 수동으로 모듈을 추가할 때는 모듈 의존관계에 따라서 필요한 의존모듈을 빼먹지 않도록 주의해야 한다.
- 배포판 파일의 압축을 풀고 dist 폴더를 열어보면 스프링 모듈을 찾을 수 있다.
- Maven을 이용해 의존 라이브러리를 관리한다면 pom.xml 파일의 의존정보 설정만으로 필요한 스프링 모듈을 가져올 수 있다.
- 스프링 모듈은 Maven Central 리포지토리에 등록되어 있다.
따라서 리포지토리를 따로 지정하지 않아도 스프링 모듈을 가져올 수 있다. - 이때는 Maven 스타일의 모듈 이름을 사용해서 스프링 모듈을 가져와야 한다.
- OSGi 이름을 가진 모듈을 사용하려면 스프링소스에서 제공하는 Maven 리포지토리를 지정해준 후 가져와야 한다.
- Maven을 이용하면 전이적 의존관계 관리기능이 적용되므로 필수 의존관계에 있는 모듈이 자동으로 추가된다.
따라서 모든 모듈을 일일이 지정할 필요가 없다.
- 스프링 모듈은 Maven Central 리포지토리에 등록되어 있다.
// core 모듈에 대한 Maven 의존 라이브러리 선언
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId> // 스프링 모듈의 Maven 이름
<version>3.0.7.RELEASE</version>
</dependency>
// OSGi 이름을 가진 core 모듈에 대한 Maven 의존 라이브러리 선언
<repository>
<id>com.springsource.repository.bundles.release</id>
<name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Release</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
</repository>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.core</artifactId> // 스프링 모듈의 OSGi 이름
<version>3.0.7.RELEASE</version>
</dependency>
스프링 모듈 목록
- AOP (AOP) : org.springframework.aop / spring-aop
- ASM (ASM 재패키징) : org.springframework.asm / spring-asm
- Aspects (AspectJ 지원) : org.springframework.aspects / spring-aspects
- Beans (빈 팩토리) : org.springframework.beans / spring-beans
- Context (애플리케이션 컨텍스트) : org.springframework.context / spring-context
- Context, Support (컨텍스트 부가 기능) : org.springframework.context/support / spring-context-support
- Core (공통 기능) : org.springframework.core / spring-core
- Expression (SpEL) : org.springframework.expression / spring-expression
- Instrument (스프링 Java Agent) : org.springframework.instrument / spring-instrument
- Instrument, Tomcat (톰캣 클래스 로더) : org.springframework.instrument.tomcat / spring-instrument-tomcat
- JDBC (JDBC) : org.springframework.jdbc / spring-jdbc
- JMS (JMS) : org.springframework.jms / spring-jms
- ORM (Hibernate, JPA 등) : org.springframework.orm / spring-orm
- OXM (OXM) : org.springframework.oxm / spring-oxm
- Test (테스트) : org.springframework.test / spring-test
- Transaction (트랜잭션) : org.springframework.transaction / spring-tx
- Web (웹 공통) : org.springframework.web / spring-web
- Web.Portlet (포틀릿) : org.springframework.web.portlet / spring-webmvc-portlet
- Web.Servlet (서블릿) : org.springframework.web.servlet / spring-webmvc
- Web.Struts (스트럿츠 1 지원) : org.springframework.web.struts / spring-struts
'Java-Spring > 토비의 스프링 3.1' 카테고리의 다른 글
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 의존 라이브러리(0) (0) | 2024.05.27 |
---|---|
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 모듈(2) (0) | 2024.05.20 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 모듈(0) (0) | 2024.05.18 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 프로젝트 시작하기 (3) (0) | 2024.05.17 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 프로젝트 시작하기 (2) (0) | 2024.04.25 |