创建并扩展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设置域名绑定 以及绑定不起作用的排查
- ››apache rewrite将指定URL转向指定的几个服务器
- ››创建SQL2005自动备份,定期删除的维护计划
- ››apache配置文件httpd.comf部分参数说明
- ››Apache+Mysql+PHP+phpMyAdmin+Mac OS X 10.7 Lion...
- ››创建动态表单 javascript
- ››apache+tomcat负载均衡_项目实例
- ››apache mysql php 源码编译使用
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››Apache2.2与Tomcat6整合及虚拟主机配置
更多精彩
赞助商链接