bean은 container 의 메터 데이터 설정으로 빈들간의 의존성을 및 빈들을 반영한다.
3.2.1. 컨테이너( Container)
org.springframework.beans.factory.BeanFactory
- XmlBeanFactory class
3.2.1.1. Configuration metadata
3.2.2. Instantiatiing a container
Resource resource = new FileSystemResource("beans.xml");BeanFactory factory = new XmlBeanFactory(resource);
ClassPathResource resource = new ClassPathResource("beans.xml");BeanFactory factory = new XmlBeanFactory(resource);
ApplicationContext context = new ClassPathXmlApplicationContext
(
new String[] {"applicationContext.xml", "applicationContext-part2.xml"}
);
// of course, an ApplicationContext is just a BeanFactoryBeanFactory factory
//= (BeanFactory) context;
3.2.2.1. Composing XML-based configuration metadata
외부의 정의된 3개의 xml(services.xml, messageSource.xml, themeSource.xml) 정의
3.2.3. The Beans
Spring IoC 컨테이너는 하나 또는 그 이상의 beans를 관리 한다.
빈 구조를 메타 데이터를 참조하여 정의 하는 방법
- 제한된 페키지 클래스 네임(a package-qualified class name):
이미 정의된 클래스로부터 구현된다. 만약 static 팩토리 메소드를 통해 제시된 것이라면 팩토리 클래스가 명시될것이다.
- 빈은 xml에 설정된 요소되로 설정되어질 것이다.(prototype, singleton, autowiring mode, initialization, desctruction callbacks, forth)
- 생성된 빈에 생성자 arguments 나 property 값으로 설정되어 질것이다.
- 빈이 작업할때 다른 빈들을 필요로 할 것이다 그것이 collaborators이다.(also called dependencies).
빈의 요소
class, name, scope, constructor arguments, properties, autowiring mode, dependency checking mode, lazy-ionitialization mode, initialization method, destruction method
3.2.3.1. Naming beans
빈은 하나 또는 그 이사의 아이디(identifiers, names)를 가진다. id 는 반드시 유니크 여야 한다.
만약 하나 이상의 아이디를 가진다면 별칭(aliases)을 고려해야 한다.
xml 기반의 설정으로 했을때 'id' 혹은 'name' 속성이 그 빈의 identifier(s) 이다.
xml정의에서 이 id 이름 제한
- 상수로 정의할 수 없다.
name 속성에 콤마(,), 세미콜론(;), whitespace를 사용할 수 없다.
Please note that you are not required to supply a name for a bean. If no name is supplied explicitly, the container will generate a (unique) name for that bean. The motivations for not supplying a name for a bean will be discussed later (one use case is inner beans).
3.2.3.1.1 Aliasing beans
3.2.3.2. Instantiating beans
댓글 없음:
댓글 쓰기