关于Tapestry5 初始化Module说明

Tapestry5的系统初始化是由Module实现的,与servlet不同

传统的web应用,要配置系统启动时初始化任务,一般是在web.xml中配置相应的servlet,由系统启动时加载

Tapestry5在系统启动时,加载Module类来实现初始化,Module类名必须与web.xml文件中配置的应用名相同,如web.xml配置:

xml 代码
  1. <!---->
  2.       PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"   
  3.       "http://java.sun.com/dtd/web-app_2_3.dtd">  
  4.       <web-app>  
  5.           <display-name>lichen forum  Applicationdisplay-name>  
  6.           <context-param>  
  7.               <param-name>tapestry.app-packageparam-name>  
  8.               <param-value>org.exampleparam-value>  
  9.           context-param>  
  10.           <filter>  
  11.               <filter-name>happyfilter-name>  
  12.               <filter-class>org.apache.tapestry.TapestryFilterfilter-class>  
  13.           filter>  
  14.           <filter-mapping>  
  15.               <filter-name>happyfilter-name>  
  16.               <url-pattern>/*url-pattern>  
  17.           filter-mapping>  
  18. web-app>  
其中红色的happy即为应用名,Module类名必须写成HappyModule,并且需要放在services包下,如:
org.example.services
HappyModule类在系统启动时加载,并且实例化,Tapestry5通过IoC来实现注册服务,每个服务由一个接口与实现类,如有Uservice接口,UserviceImpl实现类
在HappyModule中注册如下:
java 代码
  1. public static void bind(ServiceBinder binder) {   
  2.     binder.bind(UserService.class, UserServiceImpl.class);   
  3. }  

当有多个服务时,可在bind方法中增加类似以上一行代码即可,当然Tapestry5还有其他注册服务的方法,在此不做描述

 

需要使用Tapestry5中注册的服务时有几点需要注意:

1、服务必须注入,使用@Inject

2、修饰符必须为private

3、get方法修饰符必须为protected

如:

java 代码
  1. @Inject  
  2. private UserService _userService;   
  3.   
  4. protected UserService getUserService() {   
  5.     return _userService;   
  6. }  

你可能感兴趣的:(xml,Web,servlet,IOC,tapestry)