嗯~~~~~~~~~哈哈
各位coder们是否想过这么一个问题,在业务中讨厌的CRUD方法总是感到,一个字烦。呜呜呜呜~~~
以前会在每个控制层写CRUD方法,我的天,就像现在流行的一句话,伤害性不大,侮辱性极强。具体的我就不沾代码了,读者自行体会吧。嘿嘿。
接下来,我就想用一个抽象类定义CRUD,注意这只是一个案例。
package com.order.model;
import com.sun.istack.internal.NotNull;
import org.bouncycastle.asn1.ocsp.ResponseData;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
@Validated
@RestController
public abstract class BaseController {
@PostMapping("/add")
public abstract ResponseData add(@ModelAttribute @Validated Object o);
@PostMapping("/delete")
public abstract ResponseData delete(@NotBlank String id);
@PostMapping("/update")
public abstract ResponseData update(@ModelAttribute @Validated Object o);
@PostMapping("/lists")
public abstract ResponseData lists(@NotNull Integer current,@NotNull Integer size);
}
不理解抽象类的自行去脑补抽象类的相关知识。
接下来,我们直接继承这个抽象类。
package com.order.web;
import com.order.model.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.asn1.ocsp.ResponseData;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import javax.validation.constraints.NotBlank;
@RestController
@Slf4j
public class OrderNacosController extends BaseController {
@Resource
private RestTemplate restTemplate;
@Value("${service-url.nacos-user-service}")
private String serverURL;
@GetMapping(value = "/consumer/nacos/{id}")
public String paymentInfo(@PathVariable("id") Long id) {
return restTemplate.getForObject(serverURL+"/nacos/"+id,String.class);
}
@RequestMapping("/wf")
public String hello(){
return serverURL + "wf";
}
@Override
public ResponseData add(Object o) {
return null;
}
@Override
public ResponseData delete(@NotBlank String id) {
return null;
}
@Override
public ResponseData update(Object o) {
return null;
}
@Override
public ResponseData lists(Integer current, Integer size) {
return null;
}
}
是不是可快了?只需要写extends,add method。
写在最后的话:
这只是我的初步想法,有啥地方不对的,或者不好的地方,还请读者指出,一起进步。