创建启动 省略。。。
本章学习:
1.接口定义
2.接收数据
3.返回数据
@RestController注解,相当于@ResponseBody + @Controller @Controller 负责接收用户的请求 @ResponseBody 把数据写入到HTTP响应体的`body`部分 @RequestMapping 注解是用来映射请求的
get请求
http://localhost:8080/simple?name=aaa&age=12
post请求
请求体{name:a,age:2}
简单参数只要形式参数一样,就可以直接接收到
@RestController
public class requestController {
@RequestMapping("/simple")
public String simple(String name,Integer age){
System.out.println(name+":"+age);
return "ok";
}
}
@RequestParam 用于接收参数的别名,
假设接收这样一个参数
{
name:a,
age:1,
adress:{
city:1,
privonce:1
}
}
x-www-form-urlencoded
格式参数
java里面要定义对应的实体类
@RequestMapping("/simple")
public String simple(User user){
System.out.println(user);
return "ok";
}
代码比较多,就不黏贴了。
创建一个实体类,快速 生成对应的get set 方法 和 tostring方法
x-www-form-urlencoded
接收 数组参数
@RequestMapping("/simple")
public String simple(String [] hobby){
System.out.println(Arrays.toString(hobby) );
return "ok";
}
x-www-form-urlencoded 接收 集合参数 @RequestParam 去注解 @RequestMapping("/simple") public String simple111(@RequestParam Listhobby){ System.out.println(hobby ); return "ok"; }
@RequestMapping("/simple1111")
public String simple1111(@DateTimeFormat(
pattern = "yyyy-mm-dd hh:mm:aa")LocalDateTime updataTime){
System.out.println(updataTime );
return "ok";
}
postman 选择 post请求,选择 raw 选择JOSN
@RequestMapping("/simple")
public String simple(@RequestBody User user){
System.out.println(user);
return "ok";
}
@RequestMapping("/path/${id}")
public String simple21(@PathVariable Integer id){
System.out.println(id);
return "ok";
}
@RequestMapping("/path/${id}/${id2}")
public String simple21(@PathVariable Integer id,@PathVariable Integer id2 ){
System.out.println(id+id2
);
return "ok";
}
get:请求
query拼接参数 https://www.baidu.com/s?ie=9&a=1
post:请求
application/json:用于传输JSON格式的数据。 application/x-www-form-urlencoded: 用于传输HTML表单数据,即URL编码的键值对。 multipart/form-data:用于传输文件和二进制数据。 text/plain:用于传输纯文本数据。 raw json
controller 接口定义处理
service 业务逻辑处理
Dao 数据库操作
最简单的理解就是分到3个文件夹里了,个干各自的事情 ,就是分了三层。
但是,controller 要调用 service ,service 要调用 Dao
所以分了3层,又要调用别的层,又要耦合了,所以要解耦了
分三层的三个注解
@Compontent 生成@bean的基础注解 @Controller 注解 Controller类 @Service 注解service类 @Repository 注解DOC类 他们3个底层包含了@Compontent注解 而我们上面讲过, @RestController注解,相当于@ResponseBody + @Controller @Controller 包含了 @Compontent
容器就理解成一个普通对象
依赖注入,就是,把创建service对象和Dao对象,赋值到容器对象的属性了。
所以使用对象的时候,不用实例化对象了,而是直接从容器对象里面调用
所以IOC 就是这个概念,
IOC 控制反转:对象的创建和控制权由程序自身转移到了外部(容器)
DI 依赖注入:容器为应用提供运行时,所需的依赖资源
Bean对象:IOC容器中创建、管理的对象

解耦分2步
第一步:控制反转 @Component 将当前类交给IOC容器管理,成为IOC容器中的bean对象 第二步:依赖注入 @Autowrite 运行时,IOC容器会提供该类的bean对象,并且自动赋值
依赖注入的注解: 如果同类型的bean存在多个: @Primary @Autowired+@Qualifer(bean的名字) @Resource(name="bean的名字") 小区别: @Autowired 按类型注入 @Resource 安照名称注解
上一篇:蓝桥杯练习题(十)