TIL_Java Spring the Modern Way_3

-·2021년 2월 25일
0

ComponentScan을 XML로 구현

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"/>
xmlns?

xsi는 "http://www.w3.org/2001/XMLSchema-instance"를 가리키는 접두어 (그냥 그렇게 통용된다)

xmlns="*"해당 애플리케이션이 실행되는 디렉토리에서 그 네임스페이스를 사용하

는 컴포넌트를 찾는다는 의미입니다

XML Schema 문서는 대개 확장자로 .xsd를 갖는다.

schemaLocation?

Java XML 파서 schemaLocation는 XML 파일의 유효성을 검사하기 위해 값 을 읽고 인터넷에서로드하려고합니다.

그러면 Spring이 이러한 요청을 가로 채서 자체 JAR 파일 내부에서 버전을 제공합니다.

때문에 안적어주면 XML파서가 값을 읽을려고 할때 위치를 모르겠죠?

IOC(Inversion Of Control), 제어역전

일반적인 상황에서 라면

Something something = new Something();

뭐 이런식으로 내가 직접 객체를 생성하고 관리를 하게된다.

하지만 spring 에서는 ?

@Component
public class testClass {
	@Autowired
	Something something;
}

뭐 이런식으로 내가 객체를 생성하고 관리하는게 아니고 spring 에서 관리를 해준다.

그래서 componentscan같은걸로 스캔하거나 bean을 직접넣거나 하면 spring에서 관리해준다.

IOC Container ?

bean을 생성, 파괴, 라이프사이클, 의존성등등을 관리해주는 컨테이너

spring에서는 이 IOC Container를 구현하는 방법이 2가지가 있는데

  • Bean Factory

    bean의 기본적인 관리, 의존성 관리(Autowiring)

  • Application Context

    Bean Factory의 기능을 모두 포함하면서 더 많은 기능을 수행한다.

    Spring AOP 기능
    i18n(국제화)

    웹어플리케이션을 위한 applicationContext기능

그래서 메모리가 아주 부족하거나 하는 특수한 상황이 아니라면

Spring에서는 Application Context를 권장한다.

i18n

internationalization의 i와 n 사이에 18개의 알파벳이라는 뜻입니다.
세상에는 많은 언어가 있다.
심지어 언어가 같아도 지역별로 차이가 있다.
시간, 날짜, 단위 등등 많은것들이 다르다.
그래서 소프트웨어상에서 전달하는 문자열들을 언어와 지역별로 번역해야 합니다.

spring-core

spring의 핵심기능을 모아놓은 jar

profile
거북이는 오늘도 걷는다

0개의 댓글