我有一个下面的RestController,我试图验证search()方法输入参数映射是否为空。然而,在单元测试期间,当RestController实现ServiceIF接口时,它不会被实例化。若我评论实现接口,那个么控制器被实例化,验证工作正常。我不明白为什么为实现某个接口的类注释@Validated不起作用。
@Validated
@RestController
public class MyServiceImpl implements ServiceIF{
@RequestMapping(value = "search", method = RequestMethod.POST, produces = APPLICATION_JSON)
public ResponseEntity<Object> search(@RequestBody @NotEmpty Map<String, String> body) {
}
}
我正在写一个下面的单元测试来验证空地图:
RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Application.class})
public class MyServiceImplTest {
@Autowired
private ServiceIF controller;
private MockMvc mockMvc;
@Before
public void setUp(){
mockMvc = MockMvcBuilders.standaloneSetup(controller)
.setControllerAdvice(new InputValidationsExceptionHandler())
.build();
}
@After
public void tearDown(){
mockMvc = null;
}
@Test
public void testSearchInvalid() throws Exception{
ObjectMapper mapper = new ObjectMapper();
Map<String, String> map = new HashMap<>();
String data = mapper.writeValueAsString(map);
//Test invalid case
this.mockMvc.perform(post("/search").content(data)
.contentType(MediaType.APPLICATION_JSON))
.andDo(print())
.andExpect(status().isBadRequest());
}
}
问题可能出现在ServiceIF
界面中。IfServiceIF。搜索
方法参数没有注释@NotEmpty
。您将通过应用程序启动获得异常:
javax。验证。ConstraintDeclarationException:HV000151:重写另一个方法的方法不能重新定义参数约束配置
看到这个规格了吗
我已经坚持了几个小时。我不知道为什么我的JavaFX控制器指向null。我在中制作了一个JavaFX GUI,将控制器类及其适当的骨架代码添加到我的项目中。但是当我在我的方法中实例化控制器时,它指向null。 使用文件夹树: 我遵循了此处和此处提及的说明,以及其他一些StackOverflow页面。我完全按照上面提到的方式复制指令,但我的控制器仍然为空。 我缺乏想法,有人知道我做错了什么吗?
本文向大家介绍SpringMVC编程使用Controller接口实现控制器实例代码,包括了SpringMVC编程使用Controller接口实现控制器实例代码的使用技巧和注意事项,需要的朋友参考一下 Controller简介 Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分: 1、收集、验证请求参数并绑定到命令对象; 2、将命令对象交给业务对象,
...Spring implements a controller in a very abstract way, which enables you to create a wide variety of controllers. 控制器作为应用程序逻辑的处理入口,它会负责去调用你已经实现的一些服务。通常,一个控制器会接收并解析用户的请求,然后把它转换成一个模型交给视图,由视图渲染出页面最终呈现
问题内容: 在界面中添加Javadoc注释并在实现中添加非Javadoc注释是否正确? 当您自动生成注释时,大多数IDE都会为实现生成非JavaDoc注释。具体方法不应该有描述吗? 问题答案: 对于仅实现(不是覆盖)的方法,请确定为什么不这样做,尤其是如果它们是公共的。 如果您处于压倒一切的情况,并且打算复制任何文本,那么绝对不能。复制是导致差异的必经之路。结果,用户将基于检查父类型还是子类型中的
我有一个Micronaut应用程序,它的模块都是用Java和Kotlin编写的。Java模块(控制器逻辑)有一个接口,由指定@Singleton注释的Kotlin类实现。 注意:https://github.com/micronaut-projects/micronaut-core/discussions/5254有应用程序jar(demo.zip)和复制步骤。