创建并扩展Apache Wicket Web应用
2010-06-30 00:00:00 来源:WEB开发网清单9:Global应用的extra-ctx.xml文件片段,包含注解服务的本地化内容。
<context:annotation-config />
<context:component-scan base-package="com.example.modular.global.service" />
RandomTzService的实现放在com.example.modular.global.service包里,并使用Spring的 @Service注解。根据清单9的定义,RandomTzService的实现能被自动发现。要在应用中使用该服务,我们只需利用Spring的自动装配(autowire)机制,在需要注入该服务的属性上使用@Autowired注解就可以了。首先,在Web应用的类里,我们必须添加负责将依赖注入 Wicket组件的组件实例化监听器。这听起来很复杂,不过wicket-spring-annot项目提供了能实现这一切的 SpringComponentInjector类。清单10展示了这些代码。
清单10:Warsaw项目的主应用类,其中示范了Spring类注入机制和基于注解的Web页面扫描器的使用。
// package和imports信息
import org.apache.wicket.spring.injection.annot.SpringComponentInjector;
import org.wicketstuff.annotation.scan.AnnotatedMountScanner;
public class WicketApplication extends WebApplication {
@Override
protected void init() {
super.init();
addComponentInstantiationListener(new SpringComponentInjector(this));
new AnnotatedMountScanner().scanPackage("com.example.modular.**.pages").mount(this);
}
// 其它方法
}
要将服务注入Wicket组件类中,我们必须使用wicket-spring-annot项目定义的@SpringBean,对正确类型的属性进行注解。当该组件实例化时,SpringComponentInjector会查找使用@SpringBean注解的属性,并注入所需的依赖关系。我们不必担心被注入依赖的序列化问题,因为依赖都表示为序列化的代理,能自动完成序列化。在使用该方法时,我们必须记住该机制只支持访问器注入,不支持基于构造函数参数的注入。
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››Apache2.2与Tomcat6整合及虚拟主机配置
- ››Apache+php+mysql在windows下的安装与配置图解
- ››创建基于PPTP的站点到站点VPN连接:ISA2006系列之...
- ››创建基于L2TP的站点到站点的VPN连接:ISA2006系列...
- ››扩展WebSphere Portal V6个性化功能
- ››创建一个Twisted Reactor TCP服务器
- ››Apache+Subversion完美结合,CentOS下实现版本控制...
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››创建Windows Mobile上兼容性好的UI 程序
更多精彩
赞助商链接