APPLICATION_JSON'之间的区别和' APPLICATION_JSON_VALUE'

时间:2016-07-27 13:14:03

标签: java spring spring-mvc

我是春季开发的新手,想知道它们之间有什么区别 MediaType.APPLICATION_JSON_VALUEMediaType.APPLICATION_JSON

我想到两者都代表相同的application/json内容类型,但如果我放MediaType.APPLICATION_JSON,则会显示一些编译器错误,以便为我的其余部分添加@controller@ResponseBody注释控制器和何时使用MediaType.APPLICATION_JSON

@RequestMapping(value="/invite", method = POST, consumes = { MediaType.APPLICATION_JSON })
public @ResponseBody String sendInvite( ... ) { ... }

1 个答案:

答案 0 :(得分:16)

引用javadocMediaType.APPLICATION_JSONapplication/json"的公共常量媒体类型,而MediaType.APPLICATION_JSON_VALUE是"等效于MediaType.APPLICATION_JSON"。

的字符串

Java注释的属性只能是一组有限的类型之一。这可以防止MediaType用作注释属性。要解决此问题,我会使用String以及StringMediaType的各种MediaType.APPLICATION_JSON_VALUE常量,包括MediaType

在注释之外,如果要引用媒体类型,则应使用更强类型的String而不是传递MediaType.APPLICATION_JSON,这可能是也可能不是媒体类型。因此,例如,您使用MediaType.APPLICATION_JSON_VALUE而不是from selenium import webdriver htmlString = '<html><body><div style="background-color:red;height:500px;width:500px;">This is a png</div></body></html>' driver = webdriver.PhantomJS() # the normal SE phantomjs binding driver.set_window_size(1024, 768) driver.get('https://google.com/') # whatever reachable url driver.execute_script("document.write('{}');".format(htmlString)) # changing the DOM driver.save_screenshot('screen.png') #screen.png is a big red rectangle :) driver.quit() print "png file created"