Whiteship's Note


What's new in Spring 2.0 and Spring 2.5?

Spring/Chapter 2 : 2007. 11. 21. 11:18


참조 : http://static.springframework.org/spring/docs/2.5.x/reference/new-in-2.html

2.1. Introduction


이번 챕터에서는 Spring 2.5와 Spring 2.0에 새로 추가되거나 향상된 기능을 소개 합니다. 여기서는 간략히 소개하고 있기 때문에 자세한 내용은 해당 내용의 링크를 참조 하시기 바랍니다.

2.2. The Inversion of Control (IoC) container

이부분에 상당히 많은 개선이 있었습니다.

2.2.1. Easier XML configuration

XML 스키마 기반의 XML을 사용할 수 있습니다. 물론 DTD 기반의 XML을 사용할 수도 있지만 Appendix A, XML Schema-based configuration.을 사용하면 더 간편하게 할 수 있습니다.

2.2.2. New bean scopes

기존의 bean scope(singleton, prototype) 이 외에 Spring이 배포된 환경에 따라 부가적인 Scope을 사용할 수 있으며[각주:1] 사용자 정의 Scope을 만들 수도 있습니다. 자세한 내용은 Section 3.4, “Bean scopes”에있습니다.

2.2.3. Extensible XML authoring

XML 설정 파일은 작성하기도 쉽고 확장성도 좋습니다. 다른 Spring 설정 파일에서 쉽게 사용할 수 있는 custom tag를 만들어 사용할 수 있습니다. 이로 인해 DSL을 가질 수 있습니다.
The extensible configuration mechanism is documented in Appendix B, Extensible XML authoring.

2.2.4. Annotation-driven configuration

스프링 2.0에서는 설정을 간편화 하기 위해 @Transactional, @Required @PersistenceContext/@PersistenceUnit 와 같은 애노테이션들이 추가되었습니다,

스프링 2.5에서는 JSR-250 애노테이션 스팩을 따르는 @Resource, @PostConstruct and @PreDestroy 에다가 @Autowired 까지 추가되었습니다.

이들에 대한 자세한 내용은  Section 3.10, “Annotation-based configuration” 여기서 다룹니다.

2.2.5. Autodetecting components in the classpath

스프링 2.5에서 새로 추가된 기능으로 컴포넌트 스캐닝을 지원합니다. 특정 클래스패스 안에 다음의 애노테이션이 붙어있는 컴포넌트들을 자동으로 읽어옵니다. @Component, @Repository, @Service, @Controller.

이 기능을 사용하면, 애노테이션으로 XML 설정을 대채할 수 있습니다. 애노테이션 기반 설정은 Section 3.11.1, “@Component and further stereotype annotations” 여기서 자세히 다룹니다.

2.3. Aspect Oriented Programming (AOP)

보다 덜 복잡해 졌습니다. AspectJ 포인트컷 문법과 @Aspect 표기법을 지원합니다.

2.3.1. Easier AOP XML configuration

<aop:...> 라는 새로운 스키마를 제공하고 이 스키마로 AspectJ 포인트컷 문법과 캐스팅이 필요 없는 advice를 지원합니다. 자세한 내용은 Section 6.3, “Schema-based AOP support”.에 있습니다.

2.3.2. Support for @AspectJ aspects

@AspectJ 어노테이션을 사용한 Aspect 설정도 가능합니다. 이렇게 만든 Aspect는 AspectJ와 Spring에서 모두 사용이 가능하면 진짜 Section 6.2, “@AspectJ support”[각주:2]만 있으면 됩니다.

2.3.3. Support for bean name pointcut element

스프링 2.5부터 bean(...)  포인트컷 표현식을 지원합니다. 이에 대한 내용은 Section 6.2.3.1, “Supported Pointcut Designators”  여기서 다룹니다.

2.3.4. Support for AspectJ load-time weaving

스프링 2.5부터 context:load-time-weaver 엘리먼트를 사용하면 자동으로 META-INF/aop.xml 에 설정한 AspectJ 위버 설정을 읽어들어 로드 타임 위버를 적용합니다. 이에 대한 자세한 내용은 Section 6.8.4, “Load-time weaving with AspectJ in the Spring Framework” 여기서 다룹니다.

2.4. The Middle Tier

2.4.1. Easier configuration of declarative transactions in XML

1.2.x 스타일의 설정도 사용이 가능하지만 그것보다 훨씬 간단하게 할 수 있고 추천하는 바입니다. Chapter 9, Transaction management에서 자세히 볼 수 있습니다.

스프링 2.5부터 context:load-time-weaver 와 tx:annotation-driven mode="aspectj"를 사용하여 로드 타임 위버를 사용하여 애노테이션 기반의 트랜잭션 처리를 할 수 있습니다.

2.4.2. Full WebSphere transaction management support

스프링 2.5에 WAS 6.0.2.19+ and 6.0.1.9+ 부터 웹로직에서 사용할 수 있는 UOWManager API를 지원하는 WebSphereUowTransactionManager 가 추가 되었습니다.

JTA 기반 트랜잭션 매니저를 사용할 경우 tx:jta-transaction-manager 엘리먼트를 사용하여, 웹로직이나 웹스피어의 트랜잭션 관리자를 자동으로 찾아줍니다.

2.4.3. JPA

Spring 2.0 ships with a JPA abstraction layer that is similar in intent to Spring's JDBC abstraction layer in terms of scope and general usage patterns.Section 12.6, “JPA”

Spring 2.5 upgrades its OpenJPA support to OpenJPA 1.0, with support for advanced features such as savepoints.

2.4.4. Asynchronous JMS

2.0 전에는 동기화 상태에서 메시지 받기만 가능했는데 비동기 스타일로도 메시지를 받을 수 있게 됐습니다. Section 19.4.2, “Asynchronous Reception - Message-Driven POJOs”.

As of Spring 2.5, the JCA style of setting up asynchronous message listeners is supported as well, through the GenericMessageEndpointManager facility. This is an alternative to the standard JMS listener facility, allowing closer integration with message brokers such as ActiveMQ and JORAM. See Section 19.5, “Support for JCA Message Endpoints”.

Spring 2.5 also introduces an XML namespace for simplifying JMS configuration, offering concise configuration of a large numbers of listeners. This namespace supports both the standard JMS listener facility as well as the JCA setup style, with minimal changes in the configuration. See Section 19.6, “JMS Namespace Support”.

2.4.5. JDBC

JDBC support 라이브러리에 몇 개의 클래스가 추가 됐는데 NamedParameterJdbcTemplate는 JDBC statement에 ? 만 사용하던 것과 달리 named parameter를 사용할 수 있도록 해주고
SimpleJdbcTemplate 는 java 5.0 이상의 개발 환경에서 JdbcTemplate을 더 쉽게 사용할 수 있도록 도와줍니다.

스프링 2.5의 SimpleJdbcTemplate 기능이 확장되었습니다.

2.5. The Web Tier

2.5.1. Sensible defaulting in Spring MVC

여러 프로젝트를 통해서 기본값으로 적당한 값을 찾아냈습니다. 그것으로  CoC를 Spring MVC에 적용했습니다. Section 13.11, “Convention over configuration”

2.5.2. Portlet framework

Spring 2.0 ships with a Portlet framework. Chapter 16, Portlet MVC Framework.

2.5.3. Annotation-based controllers

@RequestMapping, @RequestParam, @ModelAttribute 등을 사용하여, 컨트롤러를 구현할 수 있어며 Servlet이나 Portlet API를 직접적으로 참조하지 않고도, Servlet이나 Portlet의 기능을 사용할 수 있습니다. Section 13.12, “Annotation-based controller configuration”

2.5.4. A form tag library for Spring MVC

JIRA를 통해 개발자들의 의견을 반영했으며 새로운 JSP tag 라이브러리에 대한 자세한 내용은 Section 13.9, “Using Spring's form tag library”에서 참조할 수 있습니다.

2.5.5. Tiles 2 support

Spring 2.5 ships support for Tiles 2, the next generation of the popular Tiles templating framework. This supersedes Spring's former support for Tiles 1, as included in Struts 1.x. See Section 14.3, “Tiles” for details.

2.5.6. JSF 1.2 support

Spring 2.5 supports JSF 1.2, providing a JSF 1.2 variant of Spring's DelegatingVariableResolver in the form of the new DelegatingFacesELResolver.

2.5.7. JAX-WS support

Spring 2.5 fully supports JAX-WS 2.0, as included in Java 6 and Java EE 5. JAX-WS is the successor of JAX-RPC, allowing access to WSDL/SOAP-based web services as well as JAX-WS style exposure of web services.

2.6. Everything else

기타 등등 추가되거나 개선된 기능 입니다.

2.6.1. Dynamic language support

자바 이외에 동적 언어(JRuby, Groovy, BeanShell등..)로 작성된 코드를 bean으로 등록할 수 있습니다. Chapter 24, Dynamic language support.

스프링 2.5에서 오토 와이어링 지원을 하며, 최근에 배포한 JRuby 1.0을 지원합니다.

2.6.2. Enhanced testing support

스프링 2.5부터 Spring TestContext Framework 라는 것을 도입하여 애노테이션 기반의 테스트 작성이 가능하며, JUnit 4.4와 TestNG를 지원합니다. Section 8.3.7, “Spring TestContext Framework”

2.6.3. JMX

The Spring Framework now has support for Notifications; it is also possible to exercise declarative control over the registration behavior of MBeans with an MBeanServer.

스프링 2.5부터 @ManagedResource 라는 애노테이션이 붙은 클래스를 자동으로 찾아서 노출 시키는 context:mbean-export 엘리먼트가 추가되었습니다.

2.6.4. Deploying a Spring application context as JCA adapter

스프링 2.5부터 스프링 애플리케이션 컨텍스트를 JCA RAR 파일로 배포할 수 있게 되었습니다.

2.6.5. Task scheduling

Spring 2.0 offers an abstraction around the scheduling of tasks. Section 23.4, “The Spring TaskExecutor abstraction”

The TaskExecutor abstraction is used throughout the framework itself as well, e.g. for the asynchronous JMS support. In Spring 2.5, it is also used in the JCA environment support.

2.6.6. Java 5 (Tiger) support

Java 5.0을 지원하며 아래의 링크들은 Java 5.0에서만 동작합니다.
2.7. Migrating to Spring 2.5

1.2.X 에서 2.0으로 업그레이드 하는 방법은 간단하게 2.0 jar파일을 적당한 라이브러리 폴더에 복사해 넣으면 됩니다.

1.2.X 스타일의 XML 설정 파일들은 2.0 환경에서도 100% 호환이 되긴 하지만 2.0에 새로 추가된 기능들 중 몇개(새로운 scope, 간단한 AOP 설정, 트랜잭션 설정)은 사용할 수 없습니다.

2.7.1. Changes

바뀐 내용에 대한 것은 Spring 설치 폴더에 'changelog.txt'파일에서 참조할 수 있습니다.

2.7.1.1. Supported JDK versions

2006년 말에 SUN에서 JDK 1.3을 deprecation 했기 때문에, JDK 1.3 과 관련된 라이브러리는 제거되었습니다. 최소한 JDK 1.4.2 이상의 버전을 사용해야 합니다.

JDK 1.3만 지원하는 WebSphere 4.0 나 5.0을 사용하고 계신다면, 스프링 2.0.6/2.0.7을 사용하시기 바랍니다.

2.7.1.2. Jar packaging

패키징에 변화가 있었습니다. JDO, Hibernate, TopLink를 위한 class들이 더이상 spring.jar파일 안에 들어있지 않습니다.

스프링 MVC 관련 라이브러리를 spring.jar에서 빼서 spring-webmvc.jar 여기로 묶어놨습니다. 포틀릿은 spring-webmvc-struts.jar에 있으며, 두 파일 모두 lib/module 폴더 안에 들어있습니다.

OSGi 호환 Jar 형태로 배포했기 때문에, OSGi 환경에서 스프링 2.5를 사용할 경우 별도의 패키징 작업이 필요하지 않습니다.

2.7.1.3. XML configuration

XSD 기반의 XML을 사용할 것을 권장하며 달라진 것은 1.2 DTD에서는 singleton 속성을 사용했지만 2.0 DTD에서는 scope 속성을 사용해야 합니다.

2.7.1.4. Deprecated classes and methods

다음의 클래스 or 인터페이스는 삭제되었습니다.
    * ResultReader : Use the RowMapper interface instead.
    * BeanFactoryBootstrap : Consider using a BeanFactoryLocator or a custom bootstrap class instead.

2.7.1.5. Apache OJB

Apache OJB와 관련된 코드가 Spring 소스 트리에서 완전히 삭제 되었습니다. 여전히 라이브러리 사용은 가능하지만 Spring Modules project.으로 집을 옮겼습니다.

2.7.1.6. iBatis

iBatis SQL Maps 1.3 을 지원하는 코드가 삭제 되었습니다. iBatis SQL Maps 2.0/2.1로 업그레이드 하세요.

2.7.1.7. Hibernate

Hibernate 2.1과 3.0 을 지원하는 코드가 삭제 되었습니다. Hibernate 3.1 이상의 버전들을 지원하며, 이전 버전의 하이버네이트를 사용하신다면 스프링 2.0.6/2.0.7을 사용하세요.

2.7.1.8. JDO

JDO 1.0 을 지원하는 코드가 삭제 되었습니다. JDO 2.0 이상의 버전을 지원하며, 이전 버전의 JDO를 사용하시려면 스프링 2.0.6/2.0.7을 사용하세요.

2.7.1.9. UrlFilenameViewController

The view name that is determined by the UrlFilenameViewController  now takes into account the nested path of the request. 따라서 1.2.x 에서 이 클래스를 사용하고 있었다면 Spring MVC 설정을 살짝 바꿔야 합니다.

2.8. Updated sample applications

샘플 코드도 2.0 코드에 맞게 업그레이드 했으며 spring-with-dependencies.zip 파일안에 들어있습니다. Chapter 26, Showcase applications.

2.9. Improved documentation

Reference에 잘못된 것이 있으면 이곳에 글을 올려주세요~

============================================================
updated 2007-11-21
기존의 글을 스프링 2.5 레퍼런스를 보며 내용을 추가 및 수정했습니다.
기존의 링크를 수정했습니다.
  1. 웹 환경에서 request와 session Scope를 사용할 수 있습니다. [본문으로]
  2. 예전에 해봤을 때 <aop:aspectj-autoproxy/> 이렇게만 설정해주면 됐었습니다. [본문으로]

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

Spring 2.5 OSGi 번들형태의 JAR  (2) 2008.02.13
What's new in Spring 2.0 and Spring 2.5?  (0) 2007.11.21
Spring 2.0 소개 참고자료  (0) 2007.03.03
top

Write a comment.


Bean 생성하기

Spring/Chapter 3 : 2007. 3. 7. 15:37


bean 생성하는 방법 세 가지
1. 생성자 사용하기.
2. static factory method 사용하기.
3. instance factory method 사용하기.

bean태그의 class 속성에는 굳이 JavaBean 스펙을 따르지 않는 클래스라도 자유롭게 설정파일에 지정하면 사용할 수 있습니다.

1. 생성자 이용하기.
<bean id="혜인" name="이쁘니" class="beanConfiguration.Member"/>
여태까지 하던데로 지정하면 됩니다. 단.. 이때 적절한 생성자가 필요합니다. 위에 있는 설정은 한 default 생성자를 사용하여 객체를 만들겠다는 것입니다. 따라서 default 생성자 없다면 BeanCreationException이 발생합니다.

2. static factory method 사용하기.
<bean id="pizza" class="keesun.PizzaStore" factory-method="createPizza"/>
<bean /> 태그 안에 class는 static factory 메소드를 가지고 있는 클래스 경로를 적어 주고 factory-method 속성에 해당 메소드 명을 적어 줍니다.

3. instance factory method 사용하기.
<bean id="pizzaStore" class="keesun.pizzaStrore" />
<bean id="pizza" factory-bean="pizzaStore" factory-method="createPizza" />
팩토리 메소드를 가지고 있는 객체를 통해 팩토리 메소드에 접근 하려면 bean으로 해당 클래스를 등록 해두고 factory-bean에 클래스를 적어주고 나머진 2번과 동일합니다.

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

Inner beans  (0) 2007.03.08
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
top

Write a comment.


Aliasing Beans

Spring/Chapter 3 : 2007. 3. 7. 13:30


이전 글 id와 name 그리고 BeanDeinition 이름에서 bean의 유일한 식별자를 구별해 낼 수 있게 됐습니다. 유일한 식별자 이외 나머지는 모두 별칭(alias)이 됩니다.[각주:1]

다수의 name을 사용해서 별칭을 만들수도 있지만 <alias /> 태그를 사용해서 만들 수도 있습니다. 이 때 주의해야 할 것은 별명을 진짜 대상(유일한 식별자)에다가 붙여야 한다는 것입니다.

즉..bean의 유일한 식별자 즉 BeanDefinition 이름을 alias 태그의 name 속성에 적어 두어야 합니다.

사용자 삽입 이미지

만약에 "이쁘니"라는 별명이 있는 "혜인"이가 있다고 했을 때 즉.. "혜인"이 BeanDefinition 이름이고 "이쁘니"는 alias입니다.
<bean id="혜인" name="이쁘니" class="keesun.lover.Hein" />
또는
<bean name="혜인, 이쁘니" class="keesun.lover.Hein" />
이런 식으로 지정하면 가정한 상황처럼 됩니다.

여기에 또 다시 "효도르", "지름쟁이"라는 별칭을 "이쁘니"에 다가 매겼다고 생각해 봅니다.
<alias name="혜인" alias="효도르" />
<alias name="혜인" alias="지름쟁이" />

그럼 이제.. "효도르"는 혜인이의 별명인가요?? 아니죠? "이쁘니"의 별명이 "효도르"일뿐 혜인이의 별명이 "효도르"는 아닙니다. alias는 추이적인 속성이 없기 때문에 절대로 혜인이는 효도르로 불려지지 않으며 더욱이 "지름쟁이"라는 별명으로 혜인이를 부르려고 해봤자 헛수고 입니다.
    <bean id="혜인" name="이쁘니" class="beanConfiguration.Member"/>
    <alias name="이쁘니" alias="효도르" />
    <alias name="이쁘니" alias="지름쟁이" />

    @Test public void beanAliasing(){
        String[] aliases = bf.getAliases("혜인");
        assertTrue(aliases.length == 1);
        assertTrue(aliases[0].equals("이쁘니"));

        Member bean1 = (Member) bf.getBean("혜인");
        Member bean2 = (Member) bf.getBean("이쁘니");
        Member alias1 = (Member) bf.getBean("효도르");
        Member alias2 = (Member) bf.getBean("지름쟁이");

        assertTrue(bean1.equals(bean2));

        assertFalse(bean1.equals(alias1));
        assertFalse(bean1.equals(alias2));

        assertTrue(alias1.equals(alias2));
    }
테스트는 통과 합니다.

  1. BeanFactory에 있는 String[] getAlias(String name) 메소드를 이용해서 확인할 수 있습니다. [본문으로]

'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.


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.


Introduction

Spring/Chapter 1 : 2007. 3. 2. 16:08


참조 : http://static.springframework.org/spring/docs/2.0.x/reference/introduction.html

1.1. Overview

아래 그림에 보이는 7개의 모듈로 구성되어 있습니다.
사용자 삽입 이미지

Core : Spring 프레임워크의 가장 기본이 되는 부분이며 IOC와 DI 기능을 제공합니다.
DAO : 지겨운 JDBC 코딩과 DB 벤터 마다의 에러를 파싱하는 JDBC 추상 계층을 제공합니다.
ORM : JPA, JDO, Hibernate, iBatis와 같은 유명한 ORM API들과의 통합할 수 있는 계층을 제공합니다.
AOP : AOP 진영을 따르는 Spring에서 제공하는 AOP 패키지도 있으며 AspectJ와 통합해서 사용이 가능합니다.
Web : 기본적인 웹 기반의 통합 기능을 제공하며 Webwork나 Structs와 통합할 때 사용합니다.
MVC : 웹 어플리케이션 구현을 위해 제공되며 기존의 것들과는 다르게 도메인 모델 코드와 웹 폼사이를 깨끗하게 구분지을 수 있으며 Spring 프레임워크의 다른 기능들을 사용할 수 있습니다.

1.2. Usage scenarios

다양한 형태로 사용될 수 있습니다. Spring의 모듈 전부를 사용해서 구현할 수도 있고 일부는 다른 프레임워크를 사용할 수 있습니다.
0123

All your custom business logic can be implemented using simple POJOs, managed by Spring's IoC container.

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

Spring 소개, IoC&Di 참고자료  (0) 2007.03.03
Introduction  (0) 2007.03.02
top

Write a comment.


AOP 학습 일정 1

JEDI/ToDo : 2007. 1. 4. 14:35


2주간 : Spring Reference 6장 공부
영근님과 온라인에서 발표

6. Aspect Oriented Programming with Spring
6.1. Introduction
6.1.1. AOP concepts
6.1.2. Spring AOP capabilities and goals
6.1.3. AOP Proxies in Spring
6.2. @AspectJ support
6.2.1. Enabling @AspectJ Support
6.2.2. Declaring an aspect
6.2.3. Declaring a pointcut
6.2.3.1. Supported Pointcut Designators
6.2.3.2. Combining pointcut expressions
6.2.3.3. Sharing common pointcut definitions
6.2.3.4. Examples
6.2.4. Declaring advice
6.2.4.1. Before advice
6.2.4.2. After returning advice
6.2.4.3. After throwing advice
6.2.4.4. After (finally) advice
6.2.4.5. Around advice
6.2.4.6. Advice parameters
6.2.4.7. Advice ordering
6.2.5. Introductions
6.2.6. Aspect instantiation models
6.2.7. Example
6.3. Schema-based AOP support
6.3.1. Declaring an aspect
6.3.2. Declaring a pointcut
6.3.3. Declaring advice
6.3.3.1. Before advice
6.3.3.2. After returning advice
6.3.3.3. After throwing advice
6.3.3.4. After (finally) advice
6.3.3.5. Around advice
6.3.3.6. Advice parameters
6.3.3.7. Advice ordering
6.3.4. Introductions
6.3.5. Aspect instantiation models
6.3.6. Advisors
6.3.7. Example
6.4. Choosing which AOP declaration style to use
6.4.1. Spring AOP or full AspectJ?
6.4.2. @AspectJ or XML for Spring AOP?
6.5. Mixing aspect types
6.6. Proxying mechanisms
6.6.1. Understanding AOP proxies
6.7. Programmatic creation of @AspectJ Proxies
6.8. Using AspectJ with Spring applications
6.8.1. Using AspectJ to dependency inject domain objects with Spring
6.8.1.1. Unit testing @Configurable objects
6.8.1.2. Working with multiple application contexts
6.8.2. Other Spring aspects for AspectJ
6.8.3. Configuring AspectJ aspects using Spring IoC
6.8.4. Using AspectJ Load-time weaving (LTW) with Spring applications
6.9. Further Resources
top

Write a comment.