Web开发

Web

SpringBootWeb入门

  1. 入门程序

    1. image-20251114142228127

    2. HelloController

      package com.fanxxx;
      
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      
      /*启动类/引导类*/
      
      @SpringBootApplication
      public class SpringbootWebQuickstartApplication {
      
      	public static void main(String[] args) {
      		SpringApplication.run(SpringbootWebQuickstartApplication.class, args);
      	}
      
      }
      
    3. SpringbootWebQuickstartApplication

      package com.fanxxx;
      
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RestController;
      
      @RestController //表示当前类是一个请求处理类
      public class HelloController {
          @RequestMapping("/hello")
          public String hello(String name){
      
              System.out.println("name:" + name );
              return "Hello" + name + "-";
          }
      }
      
      
    4. 然后再在浏览器输入localhost:8080/hello?name=fanxxx

  2. 入门程序剖析

HTTP协议

  1. 概念:超文本传输协议,规定了浏览器和服务器之间数据传输的规则

  2. 特点:

  3. 基于TCP协议:面对连接,安全

  4. 基于请求-响应模型的:一次请求对应一次响应

  5. HTTP协议是无状态的协议:对于事务没有处理能力

  6. HTTP-请求协议
    image-20251117092656302image-20251117093105724

    1. 请求数据获取image-20251117093319560image-20251117093617060

    2. HTTP-响应协议

      1. 响应数据格式
        image-20251117094548284
        ![image-20251117094602360](h ttps://gitee.com/Fan_xxx/picture/raw/master/20251117094628.png)

        image-20251117095226850image-20251117095758776

      2. 响应数据设置
        image-20251117095835415
        image-20251117095937484image-20251117100357539image-20251117100716370image-20251117100839223

SpringBootWeb案例

  • 开发Web程序,完成用户列表的渲染显示
  • image-20251117101122762
  • image-20251117101225691
  • image-20251117113312571
  • @ResponseBody —> 作用:将controller返回值直接作为响应体的数据直接响应;返回值是对象/集合->json->响应
  • image-20251117113157110

分层解耦

  • 三层架构
    image-20251117113557444

    • Controller:控制层,接收前端发送的请求,对请求进行处理,并响应数据。
    • service:业务逻辑层,处理具体的业务逻辑
    • dao:数据访问层(Data Access Object)(持久层),负责数据访问操作,包括数据的增加,删,改,查。

    image-20251117134404351

  • 分层解耦

    • 耦合:衡量软件中各个层/各个模块的依赖关联程度。
    • 内聚:软件中各个功能模块的工能联系。
    • 软件设计原则:高内聚低耦合。

    image-20251117135901121image-20251117140635692

  • IOC&DI入门image-20251117140806953image-20251117141304773

  • IOC详解image-20251117141539903

    声明bean的时候,可以通过注解的value属性指定bean的名字,如果没有指定,默认为类名首字母小写。image-20251117143946138

  • DI详解image-20251117144225527image-20251117144736309

    • 第一种属性注入:代码简洁,方便快速开发
      缺点:异常了类之间的依赖关系,可能会破坏类的封装性
    • 第二种构造函数注入:能清晰的看到类的依赖关系,提高了代码的安全性
      缺点:代码繁琐.如果构造函数过多,可能会导致函数臃肿
      注意:如果只有一个构造函数,@AUtowired注解可以省略
    • 第三种setter注入:保证类的封装性,依赖关系更加清晰
      缺点需要额外编写setter方法,增加了代码量

    image-20251118135654562

posted @ 2025-11-18 14:19  1忧郁女子  阅读(18)  评论(0)    收藏  举报