applicationcontext.xml의 일부
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 빈을 검색합시다 @ComponentScan -->
<context:component-scan base-package="com.in28min.spring.basics"/>
xsi는 "http://www.w3.org/2001/XMLSchema-instance"를 가리키는 접두어 (그냥 그렇게 통용된다)
xmlns="*"는 해당 애플리케이션이 실행되는 디렉토리에서 그 네임스페이스를 사용하
는 컴포넌트를 찾는다는 의미입니다
XML Schema 문서는 대개 확장자로 .xsd를 갖는다.
Java XML 파서 schemaLocation는 XML 파일의 유효성을 검사하기 위해 값 을 읽고 인터넷에서로드하려고합니다.
그러면 Spring이 이러한 요청을 가로 채서 자체 JAR 파일 내부에서 버전을 제공합니다.
때문에 안적어주면 XML파서가 값을 읽을려고 할때 위치를 모르겠죠?
일반적인 상황에서 라면
Something something = new Something();
뭐 이런식으로 내가 직접 객체를 생성하고 관리를 하게된다.
하지만 spring 에서는 ?
@Component
public class testClass {
@Autowired
Something something;
}
뭐 이런식으로 내가 객체를 생성하고 관리하는게 아니고 spring 에서 관리를 해준다.
그래서 componentscan같은걸로 스캔하거나 bean을 직접넣거나 하면 spring에서 관리해준다.
bean을 생성, 파괴, 라이프사이클, 의존성등등을 관리해주는 컨테이너
spring에서는 이 IOC Container를 구현하는 방법이 2가지가 있는데
Bean Factory
bean의 기본적인 관리, 의존성 관리(Autowiring)
Application Context
Bean Factory의 기능을 모두 포함하면서 더 많은 기능을 수행한다.
Spring AOP 기능
i18n(국제화)
웹어플리케이션을 위한 applicationContext기능
그래서 메모리가 아주 부족하거나 하는 특수한 상황이 아니라면
Spring에서는 Application Context를 권장한다.
internationalization의 i와 n 사이에 18개의 알파벳이라는 뜻입니다.
세상에는 많은 언어가 있다.
심지어 언어가 같아도 지역별로 차이가 있다.
시간, 날짜, 단위 등등 많은것들이 다르다.
그래서 소프트웨어상에서 전달하는 문자열들을 언어와 지역별로 번역해야 합니다.
spring의 핵심기능을 모아놓은 jar