同一個接口返回多種數據類型
因工作需要,有一個接口需要提供給第三方平臺,第三方平臺通過url後綴形式獲取對應的數據格式。研究網上諸多實例,後來被大神巧妙解決。請參考!謝謝!!!
- 新建一個springboot項目
- 加入依賴
<!-- lombok 依賴 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- lombok 依賴 -->
<!-- xml&json -->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<!-- xml&json -->
- 創建實體類
package com.lms.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private int id;
private String name;
private String sex;
}
- 啓動類加入註解即可
package com.lms.App;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@SpringBootApplication
@ComponentScan( basePackages= {"com.lms"})
@EnableWebMvc //重要的一部分
public class ReturnJsonXmlDataApplication {
public static void main(String[] args) {
SpringApplication.run(ReturnJsonXmlDataApplication.class, args);
}
}
- controller類
package com.lms.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.lms.model.User;
@RestController
@RequestMapping("/returnData")
public class ReturnDataController {
@GetMapping("/sayHello")
private String say() {
return "hello,this is a springboot ";
}
@GetMapping("/jsonAndxml")
private User jsonAndxml() {
User user =new User(1, "小明", "男");
return user;
}
}
- 頁面效果
參考文獻
- http://www.importnew.com/27632.html
- https://blog.csdn.net/u010695794/article/details/50242711
- https://blog.csdn.net/sinat_30665603/article/details/54175361
備註
可以在啓動類或者配置類中加入@EnableWebMvc 這個註解,就有效果。另外,探究原理請看第三篇參考文獻