在自定义的Wicket类中,与下面的类似,我使用的是应由Spring注入的服务bean,如通过SpringBean批注定义的(来自wicket-
spring项目)。
public class ReportExportFileModel extends AbstractReadOnlyModel<File> {
@SpringBean(name = "reportService")
ReportService reportService;
ReportDto reportDto;
ReportExportFileModel(ReportDto reportDto) {
this.reportDto = reportDto;
}
@Override
public File getObject() {
try {
return reportService.generatePentahoReport(reportDto);
} catch (ReportGenerationException e) {
// ...
}
}
}
但是,这是行不通的:reportService.generatePentahoReport()
NullPointerException失败,因为由于
某种原因Spring尚未注入该bean 。
奇怪的是,我在Wicket页面上使用了与匿名内部类完全相同的Model代码,并且在那里没有问题。
我怎样才能解决这个问题?
检票口依赖项注入与实现IComponentInstantiationListener的类一起使用。每当实例化组件时,就会调用这些应用程序级侦听器。这是用于组件依赖注入的钩子。
模型类没有适当的机制。任何模型都可以直接实现IModel,因此与Component不同,没有抽象的基类可以调用侦听器。
我为注入的模型(Wicket 1.5)使用以下基类:
public abstract class InjectedDetachableModel<T> extends LoadableDetachableModel<T> {
public InjectedDetachableModel() {
Injector.get().inject(this);
}
public InjectedDetachableModel(T a_entity) {
super(a_entity);
Injector.get().inject(this);
}
}
编辑 :从Wicket 1.5迁移指南摘录的1.4和1.5之间的相关差异摘要:
@Override
protected void init()
{
// initialize Spring
addComponentInstantiationListener(new SpringComponentInjector(this, applicationContext));
}
和
InjectorHolder.getInjector().inject(Object object)
@Override
protected void init()
{
// initialize Spring
getComponentInstantiationListeners().add(new SpringComponentInjector(this, applicationContext))
}
和
Injector.get().inject(Object object)
问题是我写了简单的注释处理器,它根本不处理类型注释。simple annotations processor的源代码如下所示: 有什么想法如何使用或如何通过SimpleAnnotationsProcessor访问类型注释吗?使用可插入的注释处理API对我来说是不必要的,我认为它会比Java反射有更好的性能。无论如何,我也不知道如何通过Java反射访问类型注释。
所以很明显,添加类型转换器还有其他方式,我通过显式配置转换服务来搞砸了?有没有一种方法可以注册自定义类型转换器而不踩到其他转换器?
问题内容: 例如,我想创建一个类似于AngularJS实现“电子邮件”的自定义输入类型。 我要创建的是这样的输入类型: 关于如何做到这一点的任何想法?到目前为止,我仅能弄清楚如何实现自定义指令,其中“ path”是标记,属性或类的名称。 例如,我可以使它工作,但是它与其他表单字段 不一致 ,我真的希望它们看起来相同。 问题答案: 如果type属性设置为“ path”,则可以通过使用自定义逻辑创建输
我想在任何目录的任何脚本中导入自定义编写的函数,就像在任何脚本中导入请求模块一样。我正在运行Ubuntu和Python 3.9 编辑:我按照本教程完成了我的要求-https://packaging.python.org/tutorials/packaging-projects/
我正在使用Hibernate、JPA和Spring Boot。 我想持久化一个类型为“version”的自定义对象。“version”是一个处理复杂的对象,但它在表中对应于一个简单的VARCHAR字段。我能够从字符串构造版本和从版本对象构造字符串。 null 谢谢!!
显然,可以创建一个TypeDef来根据方言切换实现。 我的问题是hibernate似乎没有识别它,值得注意的是,有一次我将“uuid-custom”作为类型中的静态字符串,并直接在中引用它,所以它并不是实际上不在类路径上。