关于Tapestry5 初始化Module说明

本文介绍Tapestry5框架如何通过Module类进行系统初始化和服务注册。不同于传统Web应用,Tapestry5不依赖servlet,而是通过特定命名规则的Module类实现。文章还详细说明了服务注册的方法及如何在组件中使用这些服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

xml 代码
  1.       PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"   
  2.       "http://java.sun.com/dtd/web-app_2_3.dtd">  
  3.       <web-app>  
  4.           <display-name>lichen forum  Applicationdisplay-name>  
  5.           <context-param>  
  6.               <param-name>tapestry.app-packageparam-name>  
  7.               <param-value>org.exampleparam-value>  
  8.           context-param>  
  9.           <filter>  
  10.               <filter-name>happyfilter-name>  
  11.               <filter-class>org.apache.tapestry.TapestryFilterfilter-class>  
  12.           filter>  
  13.           <filter-mapping>  
  14.               <filter-name>happyfilter-name>  
  15.               <url-pattern>/*url-pattern>  
  16.           filter-mapping>  
  17. 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. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值