SpringBootWeb请求响应
1、请求响应-请求-简单基本类型
1、请求响应-请求
-
-
1、要求:请求参数的名称要与形参变量的名字一样,spring就能自动给形参变量赋值 - public String simpleParam(String name,Integer age){ System.out.println(name); system.out.println(age); return "ok"; }1
- - - 2、@RequestParam解决参数名称与形参变量名不一样的问题 - public String simpleParam(@RequestParam(value=“name”,require=false,defaultValue=“狗小豪”)String username,@RequestVParam(required=false,default=“38”)Integer age){System.out.println(name); System.out.println(age); return "ok";
-
2、请求响应-请求-json类型
-
- @RequestBody注解:将请求体的json转换成java对象。要求json中的key要和对象的属性名一样 - @ResquesMapping("/jsonParam") public String jsonParam(@RequestBody User user){ System.out.println(user); return "ok"; }
3、请求响应-请求-路径参数
-
- @pathVariable注解:将占位符表示的路径参数赋值给形参变量,要求:占位符的形参变量名一样 - public String pathParam(@PathVariable Interger id,@PathVariable String name){ System.out.println(id); System.out.println(name); return “OK”;
4、统一响应结果
-
-
//1、定义Rusult类,包括code, msg,data属性
public class Result{
private Integer code;//响应码:1成功;0失败
private String msg;//消息提示
private Object data;//保存响应结果,一般是查询使用- //2、controller中的方法返回值都是Result对象
public Result getAddr(){
Address adress=null;
address=new Address;
address.setProvince(“湖北省”);
address.setCity(“武汉市”);
return Result.success(address);
- //2、controller中的方法返回值都是Result对象
2、分层解耦
1、三层架构
-
1、控制层(controller层):获取请求(参数),调用业务逻辑层方法,做出响应
-
2、业务逻辑层(service层):调用数据访问层方法,处理逻辑(数据处理)
-
3、数据访问层(dao层):操作文件/数据库。做增删改查。
-
4、Controller(请求处理,响应数据)–>
-
Service(逻辑处理)–>
- Dao(数据访问)
-
2、IOC-DI介绍
- 1、IOC:控制反转,将创建对象的权力交给Spring,由Spring创建对象保存到IOC容器中管理。
- 2、DI:依赖注入,给Bean对象中依赖的对象(成员变量)注入数据(赋值)
3、IDC-DI入门
-
- 1、@Repository//将dao层的类交给spring创建对象,保存到IOC容器中管理 public class EmpDaoA implements EmpDao{ - 2、@Service//将service层的类交给spring创建对象,保存到IOC容器中管理 public class EmpServiceA implements EmpService{ - 3、@Autiwired private EmoDao empDao;//将IOC容器中EmpDao类型的对象赋值给该属性
4、IOC详解:
-
作用:将类交给Spring创建对象,保存到IOC容器中管理
- 1、@Component注解:写在非三层架构的类上
- 2、@Controller注解:写在控制层类上,但是一般是写@RestController注解
- 3、@Service注解:写在业务逻辑层类上
- 4、@Repository注解:写在dao层类上
5、DI详解:
-
作用:给Bean对象中依赖的对象(成员变量)注入数据(赋值)
- 1、@Autowired注解:给Bean中对象类型的属性按照类型自动注入值。如果IOC容器中同类型的对象有多个,注入会失败
- 2、@Qualifier(“serviceB”)注解:指定要注入的bean的名称,必须和@Autowired一起使用