我有一个带有一个参考文件的roo实体:
@RooJavaBean
@RooToString
@RooJpaActiveRecord
public class ActivatedConfiguration {
@NotNull
@OneToOne
@JoinColumn(unique = true, nullable = false)
private Configuration configuration;
...
}
在Spring控制器中,我使用该实体作为参数注释了mathod:
@RequestMapping(value = "/")
public String startActivation(ActivatedConfiguration activatedConfiguration){
...
}
当我准备HTML GET请求时:
http://localhost:8080/app?configuration=1&[...]
春天自动注入了这个领域。
问题是:魔法来自哪里?我如何在junit测试中模拟数据库获取?
答案 0 :(得分:0)
这是由在Spring MVC中注册的Converter处理的 - 如果你查看你的web文件夹,你应该看到一个ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj类,其中包含适用于你的应用程序的所有不同的转换器 - 应该有一个在一个字符串中并将其转换为您的Configuration
类,基本上做的是将id作为String,将其转换为long,然后查找具有该id的Configuration
实体的存储库,并且是Spring MVC如何绑定参数。