Chapter 9: Spring Integration"

From Documentation
Line 9: Line 9:
  
 
== Configuration ==
 
== Configuration ==
 +
 +
=== Maven ===
 +
 +
'''Extracted from pom.xml'''
 +
<source lang='xml' high='10,11, 15,16, 20,21'>
 +
<properties>
 +
<zk.version>6.5.1</zk.version>
 +
<maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>
 +
<packname>-${project.version}-FL-${maven.build.timestamp}</packname>
 +
<spring.version>3.1.2.RELEASE</spring.version>
 +
</properties>
 +
...
 +
<!-- Spring 3 dependencies -->
 +
<dependency>
 +
<groupId>org.springframework</groupId>
 +
<artifactId>spring-core</artifactId>
 +
<version>${spring.version}</version>
 +
</dependency>
 +
<dependency>
 +
<groupId>org.springframework</groupId>
 +
<artifactId>spring-web</artifactId>
 +
<version>${spring.version}</version>
 +
</dependency>
 +
<dependency>
 +
<groupId>cglib</groupId>
 +
<artifactId>cglib</artifactId>
 +
<version>2.2.2</version>
 +
</dependency>
 +
</source>
 +
 +
 +
=== Deployment Descriptor ===
 
<!--
 
<!--
 
* list required configuration  
 
* list required configuration  

Revision as of 07:25, 31 January 2013

Overview

Spring Framework is a popular application development framework for enterprise Java. One key element is its infrastructural support: a light-weighted IoC (Inversion of Control) container that manages POJOs as Spring beans and their dependency relationship.

In this chapter, we won't create new example applications but will make previous examples integrated with Spring.

How to Integrate Spring Framework

The most common integration way is to let Spring manage an application's dependencies.

Configuration

Maven

Extracted from pom.xml

	<properties>
		<zk.version>6.5.1</zk.version>
		<maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>
		<packname>-${project.version}-FL-${maven.build.timestamp}</packname>
		<spring.version>3.1.2.RELEASE</spring.version>
	</properties>
...
		<!-- Spring 3 dependencies -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib</artifactId>
			<version>2.2.2</version>
		</dependency>


Deployment Descriptor

Extracted from web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

	<description><![CDATA[ZK Tutorial]]></description>
	<display-name>ZK Tutorial</display-name>

	<!-- ZK configuration-->
	...
	
	<!-- Spring configuration -->
	<!-- Initialize spring context -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- Enable webapp Scopes-->
	 <listener>
    	<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
	</listener>
	
	<welcome-file-list>
		<welcome-file>index.zul</welcome-file>
	</welcome-file-list>
</web-app>


WEB-INF/applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	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-3.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd">
 
 	<context:component-scan base-package="org.zkoss.tutorial" />
 
</beans>


@Service("authService")
@Scope(value="singleton",proxyMode=ScopedProxyMode.TARGET_CLASS)
public class AuthenticationServiceImpl implements AuthenticationService,Serializable{
...
}


@Component("sidebarPageConfigPagebase")
@Scope(value="request",proxyMode=ScopedProxyMode.TARGET_CLASS)
public class SidebarPageConfigPagebaseImpl implements SidebarPageConfig{
...
}