• HTTP协议,请求响应


    、概述

    二、HTTP请求协议

    三、HTTP响应协议

    四、请求数据

    1.简单实体参数

    1. @RequestMapping("/simpleParam")
    2. public String simpleParam(@RequestParam(name ="name" ,required = false ) String username, Integer age){
    3. System.out.println (username +":"+age);//自动转换数据类型
    4. return "OK";
    5. }

    2.实体参数

    1. @RequestMapping("/simplePojo")
    2. public String simplePojo(User user){
    3. System.out.println ( user );
    4. return "ok";

    3.数组参数

    1. @RequestMapping("/arrayParam")
    2. public String arrayParam(String [] hobby){
    3. System.out.println ( Arrays.toString ( hobby ) );
    4. return "ok";

    4.集合参数

    1. @RequestMapping("/listParam")
    2. public String listParam(@RequestParam List hobby){
    3. System.out.println ( hobby );
    4. return "ok";
    5. }

    5.日期参数

    1. @RequestMapping("/dateParam")
    2. public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")LocalDateTime updateTime){
    3. System.out.println (updateTime);
    4. return "ok";
    5. }

    6.Json参数

    1. @RequestMapping("/jsonParam")
    2. public String jsonParam(@RequestBody User user){
    3. System.out.println (user);
    4. return "ok";
    5. }

    7.路径参数

    1. //路径参数
    2. @RequestMapping("/path/{id}")
    3. public String pathParam(@PathVariable Integer id){
    4. System.out.println (id);
    5. return "ok";
    6. }
    7. @RequestMapping("/path/{id}/{name}")
    8. public String pathParams(@PathVariable Integer id,@PathVariable String name){
    9. System.out.println (id);
    10. return "ok";
    11. }

    五、响应数据

    1. package com.itheima.controller;
    2. import com.itheima.pojo.Address;
    3. import org.springframework.web.bind.annotation.RequestMapping;
    4. import org.springframework.web.bind.annotation.RestController;
    5. import java.util.ArrayList;
    6. import java.util.List;
    7. @RestController
    8. public class ResponseController {
    9. @RequestMapping("hello")
    10. public String hello(){
    11. System.out.println ("Hello World ~");
    12. return "Hello World";
    13. }
    14. @RequestMapping("/getAddr")
    15. public Address getAddr(){
    16. Address addr=new Address ();
    17. addr.setProvince ( "广东" );
    18. addr.setCity ( "深圳" );
    19. return addr;
    20. }
    21. @RequestMapping("/listAddr")
    22. public List
      listAddr(){
    23. List
      list =new ArrayList<> ();
    24. Address addr=new Address ();
    25. addr.setProvince ( "广东" );
    26. addr.setCity ( "西安" );
    27. Address addr2=new Address ();
    28. addr2.setProvince ( "陕西" );
    29. addr2.setCity ( "西安" );
    30. list.add ( addr );
    31. list.add ( addr2 );
    32. return list;
    33. }
    34. }

    1. package com.itheima.pojo;
    2. /**
    3. * 统一响应结果封装类
    4. */
    5. public class Result {
    6. private Integer code ;//1 成功 , 0 失败
    7. private String msg; //提示信息
    8. private Object data; //数据 data
    9. public Result() {
    10. }
    11. public Result(Integer code, String msg, Object data) {
    12. this.code = code;
    13. this.msg = msg;
    14. this.data = data;
    15. }
    16. public Integer getCode() {
    17. return code;
    18. }
    19. public void setCode(Integer code) {
    20. this.code = code;
    21. }
    22. public String getMsg() {
    23. return msg;
    24. }
    25. public void setMsg(String msg) {
    26. this.msg = msg;
    27. }
    28. public Object getData() {
    29. return data;
    30. }
    31. public void setData(Object data) {
    32. this.data = data;
    33. }
    34. public static Result success(Object data){
    35. return new Result(1, "success", data);
    36. }
    37. public static Result success(){
    38. return new Result(1, "success", null);
    39. }
    40. public static Result error(String msg){
    41. return new Result(0, msg, null);
    42. }
    43. @Override
    44. public String toString() {
    45. return "Result{" +
    46. "code=" + code +
    47. ", msg='" + msg + '\'' +
    48. ", data=" + data +
    49. '}';
    50. }
    51. }
    1. import com.itheima.pojo.Address;
    2. import com.itheima.pojo.Result;
    3. import org.springframework.web.bind.annotation.RequestMapping;
    4. import org.springframework.web.bind.annotation.RestController;
    5. import java.util.ArrayList;
    6. import java.util.List;
    7. @RestController
    8. public class ResponseController {
    9. @RequestMapping("hello")
    10. public Result hello(){
    11. System.out.println ("Hello World ~");
    12. // return new Result (1,"success","Hello World");
    13. return Result.success ("hello world");
    14. }
    15. @RequestMapping("/getAddr")
    16. public Result getAddr(){
    17. Address addr=new Address ();
    18. addr.setProvince ( "广东" );
    19. addr.setCity ( "深圳" );
    20. return Result.success (addr);
    21. }
    22. @RequestMapping("/listAddr")
    23. public Result listAddr(){
    24. List
      list =new ArrayList<> ();
    25. Address addr=new Address ();
    26. addr.setProvince ( "广东" );
    27. addr.setCity ( "西安" );
    28. Address addr2=new Address ();
    29. addr2.setProvince ( "陕西" );
    30. addr2.setCity ( "西安" );
    31. list.add ( addr );
    32. list.add ( addr2 );
    33. return Result.success (list);
    34. }
    35. }

    六、请求响应---响应案例

    1. import com.itheima.pojo.Emp;
    2. import com.itheima.pojo.Result;
    3. import com.itheima.utils.XmlParserUtils;
    4. import org.springframework.web.bind.annotation.RequestMapping;
    5. import org.springframework.web.bind.annotation.RestController;
    6. import java.util.List;
    7. @RestController
    8. public class EmpController {
    9. @RequestMapping("/listEmp")
    10. public Result list(){
    11. //1.加载并解析xml文件
    12. String file=this.getClass ().getClassLoader ().getResource ( "emp.xml" ).getFile ();
    13. System.out.println ( file );
    14. List empList = XmlParserUtils.parse ( file, Emp.class );
    15. //2.对数据进行转换处理
    16. empList.stream ().forEach (emp -> {
    17. //处理gender 1:男 2:女
    18. String gender = emp.getGender ();
    19. if ("1".equals (gender)){
    20. emp.setGender ( "男" );
    21. }else if("2".equals (gender)){
    22. emp.setGender ( "女" );
    23. }
    24. String job = emp.getJob ();
    25. if ("1".equals ( job )){
    26. emp.setJob ( "讲师" );
    27. }else if ("2".equals ( "gender" )){
    28. emp.setJob ( "班主任" );
    29. }else if ("3".equals ( job )){
    30. emp.setJob ( "就业指导" );
    31. }
    32. } );
    33. //3.响应数据
    34. return Result.success (empList);
    35. }
    36. }

    七、三层架构


    八、分层解耦

    九、IOC&DI案例

     
    

    十、IOC详解

    十一、DI详解

    1.primary 为bean 设置优先级

    2.Quakifier 指定注入的bean

    3.Resource 用名字注入     AutoWired默认按照类型注入

  • 相关阅读:
    Python与CAD系列基础篇(三)创建二三维多段线、圆弧、椭圆弧、样条曲线
    云原生Kubernetes系列项目实战-k8s集群+高可用负载均衡层+防火墙
    VSCode 建议你启用 gopls, 它到底是个什么东东?
    高等数值计算方法学习笔记第4章【数值积分(数值微分)】
    机器学习(五):混合高斯聚类GMM(求聚类标签)+PCA降维(3维降2维)习题
    elementui写一个自定义的rangeInput的组件
    Python+超市进销存 毕业设计-附源码211549
    CorelDRAW2023序列号及下载安装条件
    探索编程世界的魔力:浅析经典算法的奥秘
    深度循环神经网络
  • 原文地址:https://blog.csdn.net/m0_64703222/article/details/133356826