1.快速创建一个SpringBoot项目
GET请求
一个顶两的注解
@GetMapping = @RequestMapping(method = RequestMethod.GET)
@PostMapping = @RequestMapping(method = RequestMethod.POST)
@PutMapping = @RequestMapping(method = RequestMethod.PUT)
@DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class JsonData {
/**
* 状态码 0 表示成功,1表示处理中,-1表示失败
*/
private Integer code;
/**
* 数据
*/
private Object data;
/**
* 描述
*/
private String msg;
/**
* 成功,传入数据
* @return
*/
public static JsonData buildSuccess() {
return new JsonData(0, null, null);
}
/**
* 成功,传入数据
* @param data
* @return
*/
public static JsonData buildSuccess(Object data) {
return new JsonData(0, data, null);
}
/**
* 失败,传入描述信息
* @param msg
* @return
*/
public static JsonData buildError(String msg) {
return new JsonData(-1, null, msg);
}
启动类:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
//这个类要放在最外层才可以扫描子包的东西
SpringApplication.run(DemoApplication.class, args);
}
}
控制层: 主要
@RestController
@RequestMapping("/api/v1/video")
public class VideoController {
@Autowired
private VideoService videoService;
@GetMapping("list")
public Object list(String name) throws JsonProcessingException {
//xx/?name=xxx 传递参数
System.out.println(name);
return JsonData.bulidSuccess(videoService.listVideo());
}
mapper实现返回列表的方法,这里采用模拟,后面通过mybatis进行数据库交互 :
@Repository //加这个注解,spring就会自动识别是一个组件,自动会帮我们new一个类,之后我们去VideoSetvice接口定义方法
public class VideoMapper {
private static Map<Integer, Video> videoMap=new HashMap<>();
static {
//模拟的数据,后续采用数据库
静态加载类,加载一次,已启动就用信息的了。
videoMap.put(1,new Video(1,"java基础课程,jdk新特性"));
videoMap.put(2,new Video(2,"spring boot"));
videoMap.put(3,new Video(3,"java基础课程,spring clound"));
videoMap.put(4,new Video(4,"java基础课程,面试专题"));
}
public List<Video> listVideo(){
List<Video> list=new ArrayList<>();
list.addAll(videoMap.values());
return list;
}
}
接口层:
public interface VideoService {
//返回List列表
List<Video> listVideo();
}
实现层:
@Service //可以统一使用Component但是为了区分可以使用提供的多种注解
public class VideoServiceImpl implements VideoService {
// private VideoMapper videoMapper=new VideoMapper(); 使用spring就不用这么写,只需要加一个注解spring就会自动帮我们实例化
@Autowired
private VideoMapper videoMapper;
@Override
public List<Video> listVideo() {
return videoMapper.listVideo();
}
}
@Autowired
private VideoService videoService;
@GetMapping("list")
public Object list(){
return videoService.listVideo();
}