Spring Roo - 绑定实体到控制器方法参数字段

时间:2012-09-12 10:47:26

标签: spring-mvc spring-roo

我有一个带有一个参考文件的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测试中模拟数据库获取?

1 个答案:

答案 0 :(得分:0)

这是由在Spring MVC中注册的Converter处理的 - 如果你查看你的web文件夹,你应该看到一个ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj类,其中包含适用于你的应用程序的所有不同的转换器 - 应该有一个在一个字符串中并将其转换为您的Configuration类,基本上做的是将id作为String,将其转换为long,然后查找具有该id的Configuration实体的存储库,并且是Spring MVC如何绑定参数。