Whiteship's Note


3.2. Basics - containers and beans

Spring/Chapter 3 : 2007. 3. 5. 13:21


3.2.1. The container

사용자 삽입 이미지
3.2.1.1. Configuration metadata

Spring IoC Container가 어떻게 bean을 만들고, 설정하고, 엮을지 적어 놓은 것으로 주로 XML을 사용하지만 XML이 유일한 방법은 아닙니다.

XML 기반의 Configuration metadata 예.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  <bean id="..." class="...">
    <!-- collaborators and configuration for this bean go here -->
  </bean>
  <bean id="..." class="...">
    <!-- collaborators and configuration for this bean go here -->
  </bean>
  <!-- more bean definitions go here... -->
</beans>

Configuration Metadata 이해

3.2.2. Instantiating a container

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 BeanFactory
BeanFactory factory = (BeanFactory) context;
할 수 있습니다. 마지막 꺼는 xml 설정 파일 두 개를 Container에 불러 왔네요.

FileSystemResource vs ClassPathResource (2)
id, name and BeanDefinitionName

3.2.2.1. Composing XML-based configuration metadata

설정을 여러 개의 파일로 나눠 둘 수 있고 당연히 여러 개의 설정 파일을 위에 나온 방식 처럼 Container를 만들 때 사용할 수 있습니다. 그러나 위에 처럼 설정 파일 명을 프로그램 파일 내부에 표기 하는 것 보다는 xml 안에 숨겨 두는 것이 좋습니다. <import /> 를 사용하여 설정 파일을 지정할 수 있습니다.
<beans>

    <import resource="services.xml"/>
    <import resource="resources/messageSource.xml"/>
    <import resource="/resources/themeSource.xml"/>

    <bean id="bean1" class="..."/>
    <bean id="bean2" class="..."/>

</beans>

3.2.3. The beans

bean 설정 데이타는 BeanDefinition이라는 객체로 표현됩니다.

3.2.3.1. Naming beans

모든 bean들은 하나 이상의 id를 가집니다. 이런 id들은 유일해야 하며 하나 이상의 id를 가지는 bean의 경우 하나를 제외한 나머지는 별칭으로 취급 됩니다. <bean /> 태그의 id와 name속성을 사용하여 지정할 수 있습니다.

빈(bean)의 이름 지정
Spring의 naming/aliasing 정책에 대한 수사 (상)
Spring의 naming/aliasing 정책에 대한 수사 (중)
Spring의 naming/aliasing 정책에 대한 수사 (하)

이쪽은 뭔가 좀더 자세히 봐야 겠습니다.

Aliasing Beans (4)
복잡한 Alias
Bean 생성하기

3.2.4. Using the container

BeanFactory를 사용하는 방법입니다.
InputStream is = new FileInputStream("beans.xml");
BeanFactory factory = new XmlBeanFactory(is);
위 코드는 맨 위에 있는 그림 중에 빡스와 설정 파일 부분에 해당하며..

application에서는 BeanFactory에 있는 메소드들을 호출하여 사용하면 됩니다.

'Spring > Chapter 3' 카테고리의 다른 글

idref 엘리먼트  (0) 2007.03.08
Constructor Injection 할 때 인자 구분  (0) 2007.03.08
Setter Injection & Constructor Injection  (0) 2007.03.08
3.3. Dependencies  (0) 2007.03.08
Bean 생성하기  (0) 2007.03.07
복잡한 Alias  (0) 2007.03.07
Aliasing Beans  (0) 2007.03.07
id, name and BeanDefinitionName  (0) 2007.03.06
FileSystemResource vs ClassPathResource  (2) 2007.03.06
3.2. Basics - containers and beans  (0) 2007.03.05
BeanFactory와 ApplicationContext 인터페이스  (0) 2007.03.05
top

Write a comment.


Spring MVC configuration 파일들 설정 하기

Spring/주소록 만들기 : 2006. 12. 26. 19:50


참고 : Spring MVC 어플리케이션 개발 <5> MVC 컨트롤러 작성

먼저 앞에서 만들어 둔 컨트롤러를 기존의 WebApplicationContext[각주:1]에 등록해준 Controller를 수정하여 등록합니다.
<!-- Controller 등록 -->
    <bean name="/index.do"
        class="member.web.MemberListController">
        <property name="memberRepository" ref="memberRepository" />
    </bean>
컨트롤러에서 사용한 memberRepository 변수를 IOC를 사용하여 연결 시키고 있습니다.

memberRespocitory 빈을 applicationContext.xml에 다음과 같이 등록 하고 WEB-INF/spring폴더를 만들고 그 안에 넣어둡니다.
    <bean id="memberRepository" class="net.webapp2.member.service.MemberRepositoryImpl">
        <property name="memberDao" ref="memberDao" />
    </bean>
</beans>

위에서 사용하는 memberDao 빈은 daoContext-member.xml에 정의해 둡니다.
<bean id="memberDao" class="net.webapp2.member.dao.SqlmapMemberDao">
        <property name="sqlMapClient" ref="sqlMapClient" />
    </bean>

그리고 여기서 사용하는 sqlMapClient는 daoContext.xml에 정의해 둡니다.
<bean id="sqlMapClient"
        class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
        <property name="configLocation"
            value="WEB-INF/ibatis/sql-map-config.xml" />
        <property name="dataSource" ref="dataSource" />
    </bean>

iBATIS와 연동하는 부분이네요. iBATIS는 WEB-INF/ibatis폴더에 sql-map-config.xml을 만들어서 넣어 줍니다. 지금 까지 설정한 파일들의 대부분은 기존의 Spring MVC를 제외한 상태에서 만들었던 프로젝트에 있던 파일들입니다. 따라서 적당한 위치로 복사해 주면 될 것 같습니다.

지금까지 설정해준 설정 파일들은 web.xml에서 읽어 들이도록 다음과 같이 코딩을 합니다.
<!-- Spring Context Config Location -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/spring/daoContext-member.xml
            /WEB-INF/spring/applicationContext.xml
            /WEB-INF/spring/daoContext.xml
        </param-value>
    </context-param>

    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>

사용자 삽입 이미지

  1. addressBook-sevlet.xml [본문으로]

'Spring > 주소록 만들기' 카테고리의 다른 글

Spring's form tag  (0) 2007.02.01
DisplayTag과 SpringMVC  (0) 2007.01.31
DisplayTag 배끼기  (2) 2007.01.31
주소록 개발 카탈로그  (4) 2006.12.30
JSP 화면 작성  (0) 2006.12.29
Spring MVC configuration 파일들 설정 하기  (0) 2006.12.26
MVC 컨트롤러 작성  (0) 2006.12.26
화면 작성  (0) 2006.12.26
Alt + Shift + X, R 주의  (2) 2006.12.25
Web Application Context 작성  (3) 2006.12.25
Spring MVC 구동을 위한 web.xml 작성  (0) 2006.12.25
top

Write a comment.