WEB开发网
开发学院软件开发Java 创建并扩展Apache Wicket Web应用 阅读

创建并扩展Apache Wicket Web应用

 2010-06-30 00:00:00 来源:WEB开发网   
核心提示: 清单9:Global应用的extra-ctx.xml文件片段,包含注解服务的本地化内容,创建并扩展Apache Wicket Web应用(8),<context:annotation-config/><context:component-scanbase-package=&qu

清单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注解的属性,并注入所需的依赖关系。我们不必担心被注入依赖的序列化问题,因为依赖都表示为序列化的代理,能自动完成序列化。在使用该方法时,我们必须记住该机制只支持访问器注入,不支持基于构造函数参数的注入。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:创建 扩展 Apache

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接