请求响应
1.postman这是一个给后端发送数据的软件
a.get方式直接填表。
b.Post的在Body里,以表单的形式。
c.集合的方式,和数组一样,接受的方式不同罢了
d.JSON的方式,选择raw
e.日期时间,需要传指定格式
f.路径的方式
g:知识点
h.代码如下:
Result类代码:
package com.example.two.Dao.Utils;
/**
* 统一响应结果封装类
*/
public class Result {
private Integer code ;//1 成功 , 0 失败
private String msg; //提示信息
private Object data; //数据 data
public Result() {
}
public Result(Integer code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public static Result success(Object data){
return new Result(1, "success", data);
}
public static Result success(){
return new Result(1, "success", null);
}
public static Result error(String msg){
return new Result(0, msg, null);
}
@Override
public String toString() {
return "Result{" +
"code=" + code +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
}
属性代码:地址的就不复制了,太多了
package com.example.two.Dao.Pojo; public class User { private String name; private Integer age; private Address address; public User() { } public User(String name, Integer age, Address address) { this.name = name; this.age = age; this.address = address; } /** * 获取 * @return name */ public String getName() { return name; } /** * 设置 * @param name */ public void setName(String name) { this.name = name; } /** * 获取 * @return age */ public Integer getAge() { return age; } /** * 设置 * @param age */ public void setAge(Integer age) { this.age = age; } /** * 获取 * @return address */ public Address getAddress() { return address; } /** * 设置 * @param address */ public void setAddress(Address address) { this.address = address; } public String toString() { return "User{name = " + name + ", age = " + age + ", address = " + address + "}"; } }
控制器代码:
package com.example.two.Controller; import com.example.two.Dao.Utils.Result; import com.example.two.Dao.Pojo.User; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.time.LocalDateTime; import java.util.Arrays; import java.util.List; @RestController // 作用如下 @RestController=@Controller + @RequestBody public class RestQuestController { //不论是get还是post,都可以用@requestMapping接收 @RequestMapping("/SimpleParam") public String SimpleParam(HttpServletRequest request){ String name = request.getParameter("name"); String ageStr = request.getParameter("age"); int age=Integer.parseInt(ageStr); System.out.println(name + ":" + age); return "OK"; } //SpringBoot方式:简单参数,get方式 @RequestMapping("/SimpleParamTwo") public String SimpleParamTwo( String name,String age){ System.out.println(name + ":" + age); return "OK"; } //SpringBoot方式:简单参数,Post方式 @RequestMapping("/SimpleParamPost") //倘若参数名称对不上,则可以用@RequestParam进行元素绑定,通过required可以控制这个属性是否必须传递。 public String SimpleParamPost(@RequestParam(name ="name",required = false)String userName,String age){ System.out.println(userName + ":" + age); return "OK"; } //SpringBoot方式:简单参数封装成类,保持类属性和参数相对应。简单实体参数.类里面还可以有其他类,但是属性名得对应 @RequestMapping("/SimpleParamPojo") public String SimpleParamClass(User user){ System.out.println(user.getName() + ":" +user.getAge() +user.getAddress().getProvince()+user.getAddress().getCity()); return "OK"; } //SpringBoot方式:数组方式,数组名和Key得对应,否则接受不到数据 @RequestMapping("/SimpleParamArr") public String SimpleParamArr(String[] hobby){ System.out.println(Arrays.toString(hobby)); return "OK"; } //SpringBoot方式,集合方式,数组名和Key得对应,否则接受不到数据,并且还要加@RequestParam注解 @RequestMapping("/SimpleParamList") public String SimpleParamList(@RequestParam List<String>[] hobby){ for (List<String> string : hobby) { System.out.println(string); } return "OK"; } //SpringBoot方式:日期参数 最后的ss不能大写,否则出错。 @RequestMapping("/SimpleParamDate") public String SimpleParamDate(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")LocalDateTime localDateTime){ System.out.println(localDateTime); return "OK"; } //JSON方式:Post方式raw方式 @RequestMapping("/SimpleParamJSON") public String SimpleParamJSON(@RequestBody User userTwo){ System.out.println(userTwo); return "OK"; } //路径参数 @RequestMapping("/SimpleParamUrl/{id}/{name}") public String SimpleParamUrl(@PathVariable Integer id,@PathVariable String name){ System.out.println(id + " "+name); return "OK"; } //-----------------------以下是result方式------------------------------------ //SpringBoot方式:简单参数,get方式 @RequestMapping("/SimpleParamTwoResult") public Result SimpleParamTwoResult(String name, String age){ System.out.println(name + ":" + age); return new Result(1,"OK",name+" "+age); } //SpringBoot方式:简单参数封装成类,保持类属性和参数相对应。简单实体参数.类里面还可以有其他类,但是属性名得对应 @RequestMapping("/SimpleParamPojoResult") public Result SimpleParamPojoResult(User user){ System.out.println(user.getName() + ":" +user.getAge() +user.getAddress().getProvince()+user.getAddress().getCity()); return Result.success(user); } }
2.Ioc与Di
a.首先是三层架构
b.控制反转与注入
c.声明:有点像Spring知识
d.用衍生注解,如果注解不用value指定时,默认是类名首字母小写
e.组件扫描
启动类里面已经封装了,我们开发一定要注重开发约定标准