[WEB开发] Web基础

server/2025/3/17 9:26:37/

一. HTTP

在之前的文章中, 我们已经详细学习过HTTP了.

  • [计算机网络] HTTP/HTTPS

二. Web基础

spring_4">2.1 spring全家桶

  • spring framework: spring最底层的框架.
    Spring Framework 是一个功能强大的 Java 应用程序框架,旨在提供高效且可扩展的开发环境。它结合了轻量级的容器(IOC)和依赖(DI)注入功能,提供了一种使用 POJO 进行容器配置和面向切面的编程的简单方法,以及一组用于AOP的模块.
  • spring boot: 用来快速的构建spring项目.
    Spring Boot 是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持,可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通过自动配置功能,降低了复杂性,同时支持基于JVM的多种开源框架,可以缩短开发时间,使开发更加简单和高效。
  • spring cloud: 微服务.
  • spring data: 数据库.
    详细介绍两个, 具体可以参考spring官网和spring中文网.

2.2 SpringWebBoot入门程序

在这里插入图片描述
在这里插入图片描述

  • @SpringBootApplication: 启动类
  • @RestController:请求处理类
  • @RequestMapping: 标记资源路径 (资源路径 = 类路径 + 方法路径)

2.3 面试题: 为什么一个main方法就能将web程序启动?

答: 本质上web程序的启动依赖于web服务器. 调用run方法之后, web服务器tomcat启动, 再把程序部署在tomcat服务器中. web程序就启动了.在这里插入图片描述这其中利用了maven一个非常重要的特性 - 依赖继承性. 只需要在pom.xml文件中引入spring-boot-starter-web依赖就好.
在这里插入图片描述
在这里插入图片描述

2.4 分层解耦

2.4.1 三层架构

  • controller: 接收请求, 响应数据.
  • service: 逻辑处理
  • dao(data access object): 数据访问.
    在这里插入图片描述

2.4.2 IOC

IOC(inversion of controller): 控制反转.
把对象的创建控制权由程序自身转移到了容器.
就是把某个对象交给IOC容器管理.

使用以下注解, 标记将对象交给IOC容器管理:

  • @Component (通用)
  • @Controller (请求响应层controller)
  • @Service (逻辑处理层service)
  • @Repository (数据访问层dao)

但是, 要让以上4个注解生效, 还需要进行组件扫描, 使用到的注解是 @ConponentScan.
注意:

  • @SpringBootApplication 继承了 @Component注解.
  • @Component 组件扫描的范围是: 当前包和当前包的子包.
    在这里插入图片描述

2.4.3 DI

DI(dependency injection): 依赖注入.
容器为应用程序提供运行时所依赖的资源.

基于@Autowired的三种依赖注入方式:

  • 属性注入

    • 在这里插入图片描述
  • 构造函数注入(如果只有一个构造函数, @Autowired可以省略)

    • 在这里插入图片描述
  • set方法注入

    • 在这里插入图片描述

2.4.4 IOC容器中存在多个相同类型Bean, DI如何注入?

在这里插入图片描述

此时不处理多种Bean, 会报如下错误:
在这里插入图片描述

解决:

  • 被@Primary注解的Bean优先注入

    • 在这里插入图片描述
  • @Qualifier 与 @Autowired配合使用, 参数是bean名

    • 在这里插入图片描述
  • @Resource

    • 在这里插入图片描述

2.4.5 @Autowired 与 @Resource的区别

  • @Autowired是spring框架提供的, @Resource是java提供的.

    • 在这里插入图片描述
  • @Autowired是按照类型注入的, @Resource是按照bean名注入的.


http://www.ppmy.cn/server/175672.html

相关文章

ISP--Gamma Correction

文章目录 现象Gamma产生的原因CRT属性导致人眼的亮度特性 gamma校正LUT法线性插值法模拟gamma法 现象 从上往下看左侧黑色块黑得越来越严重,对比度也在逐渐加深。此时灰阶的高亮区获得的数据位变少,暗区获得的数据位变多,暗区细节会更多。但是…

Authenticity is the compass that guides you to your true purpose

Title: The Strength of Being Unapologetically You In a world that constantly pressures us to conform, authenticity becomes an act of rebellion. Your uniqueness is not a flaw—it is your superpower. When you silence the noise of others’ expectations and li…

Vue-Lottie动画使用

Vue-Lottie 是一个基于 Vue.js 的库,用于在 Vue 应用程序中渲染 Adobe After Effects 动画,通过 Bodymovin 插件导出的 JSON 数据来实现。这个项目非常适合那些想要在他们的Vue项目中加入精美动画而又不希望因为视频文件或 GIF 图片而增加应用大小的开发…

信息系统运行管理员教程6--信息系统安全

信息系统运行管理员教程6–信息系统安全 第1节 信息系统安全概述 1.信息系统安全的概念 信息系统安全是指保障计算机及其相关设备、设施(含网络)的安全,运行环境的安全,信息的安全,实现信息系统的正常运行。信息系统…

es6初步学习

Es6 作用: 语法简洁,功能丰富框架开发应用前端开发职位要求 ECMAScript 它是一个脚本程序设计语言注意:块级作用域是指变量只在特定的代码块(通常由一对花括号{}包裹,比如if语句、for循环、while循环等的代码块 &a…

国产编辑器EverEdit - Hex Dump插件:看到文本的另一面!

1 Hex Dump插件 1.1 应用场景 有时可能需要显示字母的ASCII编码,或其他文字的字节编码,可以使用Hex Dump插件来完成 1.2 使用方法 安装Hex Dump插件,安装插件方法参考:扩展管理 在编辑器中选中文本,选择扩展 -> …

[JAVASE] Collection集合的遍历

一. 集合分类 java中的Collection集合分为两类, 分别是单列集合(List)和双列(Map)集合. 1.1 单列集合 1.2 双列集合 二. 集合遍历 2.1 List单列集合的遍历 for each遍历 迭代器遍历 lambda遍历 2.2 Map双列集合的遍历 for each遍历 k-v整体遍历 lambda表达式遍历

深度学习基础:线性代数本质6——逆矩阵、列空间与零向量

通过直观的线性变换视角来重新看逆矩阵,列空间,秩,零空间的概念 线性代数在几乎所有领域中都有所体现并被广泛应用的主要原因是:可以帮助我们求解特定的方程组。 1. 矩阵的用途 它能用来描绘对空间的操控,这对计算机…