SpringBoot了解

Spring Boot 进阶-深入了解SpringBoot条件注解 到这里整个的条件注解相关的内容就说完了,在Spring Boot中有着大量的条件注解,感兴趣的读者了通过上面的思路来自己分析一下其源码以及执行逻辑,这样可以帮助大家更好的掌握Spring Boot的使用。也希望大家能够多多支持。 阅读详情

Web入门

Spring 官网 https://spring.io/

Spring 发展到今天 形成了一个开发生态圈,Spring 提供了若干个子项目,每个项目用于完成特定的功能。

SpringBoot 可以快速开发出来一个应用程序,简化开发提供效率

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.
We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need minimal Spring configuration.

一 请求

1 简单参数的
1>原始方式:通过HttpServletRequest 对象手动获取
package org.example.skwebtest.controller;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
import jakarta.servlet.http.HttpServletRequest;
@RestController
public class RequestController {
    @RequestMapping("/simpleParam")
    public String simpleParam(HttpServletRequest request) {
        // 获取请求参数
        String name = request.getParameter("name");
        String idStr  = request.getParameter("id");
        int id = Integer.parseInt(idStr);
        System.out.println( "name:---"+name + ":id---" + id);
        return "Hello World!";
    }
}

// 打印控制台打印出接收到的参数.
2> Springboot 方式 简单快捷

只需要确保参数名和形参名相同

@RequestMapping("/simpleParam2")
public String simpleParam2(String name ,Integer id) {
    // 获取请求参数
    System.out.println( "name:---"+name + ":id---" + id);
    return "Spirngboot方式 获取参数";
}

3 > 如果方法参数名称与请求参数名称不相同 可以使用@RequestParam 完成映射
@RequestMapping("/simpleParam3")
public String simpleParam3(@RequestParam(name = "name") String username , Integer id) {
    // 获取请求参数
    System.out.println( "username:---"+username + ":id---" + id);
    return "Spirngboot方式 RequestParam 获取参数";
}

2 实体参数

请求参数名与形参对象属性名相同即可

@RequestMapping("/simplePojo")
public String simplePojo(User user) {
    System.out.println( user);
    return "Spirngboot方式 接收pojo参数";
}



public class User {
    private String name;
    private int age;
}
3 数组集合参数

http://localhost:8080/listParam?hobby=swim&hobby=run&hobby=sing

// 数组形式
@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby) {
    System.out.println(Arrays.toString(hobby));
    return "接收数组参数";
}

// 集合形式
@RequestMapping("/listParam")
public String listParam(@RequestParam  java.util.List<String> hobby) {
    System.out.println(hobby);
    return "集合形式接收参数";
}

4 日期参数
@RequestMapping("/dateParam")
// DateTimeFormat 设置接收时间的格式
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime) {
    System.out.println(updateTime);
    return "接收日期参数";
}

5 json 参数

请求但参数

{
    "name":"fibo",
    "age":35,
    "address":{
        "province":"henan",
        "city":"pds"
    }
}

// json 参数
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user) {
    System.out.println(user);
    return "接收json参数";
}

6 路径参数

通过请求URL 直接传递参数,使用{…}来标识该路径参数,需要使用PathVariable 进行标注
http://localhost:8080/pathParam/55

// 路径参数
@RequestMapping("/pathParam/{id}")
public String pathParam(@PathVariable("id") Integer id) {    // 路径参数
    System.out.println(id);
    return "接收路径参数";
}

二 响应

响应设置一个统一的响应结果

@ResponseBody 将方法返回值直接响应,若返回值类型是实体对象或者集合,转JSON 格式响应

// 字符串类型
@RequestMapping(value = "/hello1")
public Result getString() {
    return new Result(200, "hello world", "success");
}
// 对象类型
// 返回的对象 默认是会被转为json格式
@RequestMapping(value = "/address")
public Result getAddress() {
    Address address = new Address();
    address.setProvince("广东");
    address.setCity("深圳");

    return  new Result(200, address, "success");
}

// 数组类型
@RequestMapping(value = "/listAddress")
public Result getListAddress() {
    List<Address> list = new ArrayList<>();
    Address address1 = new Address();
    address1.setProvince("广东");
    address1.setCity("广州");
    list.add(address1);
    Address address2 = new Address();
    address2.setProvince("江苏");
    address2.setCity("南京");
    list.add(address2); // 省份为空

    return  new Result(200, list, "success");
}

三 三层架构模式

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

四 分层解耦 IOC 和 DI

1 基本概念
内聚:软件中各个功能模块内部的功能联系
耦合: 衡量软件中各个层/模块之间的依赖,关联的程度
软件设计原则:高内聚低耦合

控制反转: Inversion Of Control ,简称IOC,对象的创建控制权由程序自身转移到外部(容器),这种思想称之为控制反转
依赖注入:Dependency Injection ,简称DI 。容器为应用程序 提供运行时,所依赖的资源,称之为依赖注入。
Bean对象:IOC 容器中创建,管理的对象,称之为bean

类之前 @Component ,将当前类交给IOC容器管理,成为IOC 容器之中的bean
@Autowired 运行时 ,IOC 容器会提供该类型的bean对象,并赋值给该变量,这就是依赖注入

2 IOC 详解

@Component 通用类组件注解,该类被注解,IOC容器启动时实例化此类对象
@Controller 注解控制器类
@Service 注解业务逻辑类
@Respository 注解和数据库操作的类,如DAO类

前面声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponentScan 扫描
这个注解默认是在@SpringBootApplication中,默认扫描范围是启动类所在包及其子包

3 DI 详解

@Autowired 注解,默认是按照类型进行,如果存在多个相同类型的bean,将会出现报错

无法自动装配。存在多个 ‘EmpService’ 类型的 Bean。

通过一下几种方案来解决:

@Primary 是用来设置bean 的优先级,要想让哪个bean 生效,在其上方加此注解

@Qualifier 配合autowired 进行制定 @Qualifier(“empServiceA”)

@Resource 这个是jdk 提供的,单独使用直接制定名字也可以 @Resource(name = “empServiceA”)

《Spring Boot》了解springboot,以及用eclipse搭建springboot项目。 SpringBoot是什么? (这是在网上看见的感觉比较易于理解的springboot。) Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像mav... 阅读详情

相关推荐

UE5.2 DynamicMesh避坑指南:从蓝图生成到物理碰撞的完整流程

本文详细解析了在UE5.2中使用DynamicMesh组件时,如何正确选择ADynamicMeshActor与AGeneratedDynamicMeshActor,并提供了从蓝图生成、初始化到配置物理碰撞的完整避坑流程。重点解决了SpawnActor失效、碰撞更新等常见问题,帮助开发者高效实现程序化网格生成与动态变形效果。

rrr55的博客 314

SpringBoot-了解SpringBoot

SpringBoot-了解SpringBoot1. 了解SpringBoot1.1.什么是SpringBoot1.2.为什么要学习SpringBoot1.3.SpringBoot的特点 1. 了解SpringBoot 在这一部分,我们主要了解以下3个问题: 什么是SpringBoot 为什么要学习SpringBoot SpringBoot的特点 1.1.什么是SpringBoot Spring...

shenzhen_zsw的专栏 538

DIY压电陶瓷传感器信号放大:从拆解到JFET电路实战(附示波器实测数据)

本文详细介绍了如何利用废旧设备拆解的压电陶瓷片,结合JFET(结型场效应管)高输入阻抗特性,DIY搭建高灵敏度振动传感器放大电路。从元件拆解、参数实测到JFET共源极放大器实战搭建与调试,提供了完整的步骤、示波器实测数据及优化方案,帮助电子爱好者实现低功耗振动检测应用。

weixin_29195615的博客 386

SpringBoot基础-了解Spring Boot及其常用注解

介绍Spring Boot基础知识;了解Spring Boot、常用注解、starter等。

chen 604

ComfyUI 的 LoRA 训练:秋叶 LoRA-scripts 参数设置与测试方法详解

秋叶 LoRA-scripts 的参数设置需结合理论(如模型原理、优化器机制)和硬件条件(显存、算力),新手可先按推荐值起步,再逐步调整。测试时,loss 值帮你判断训练是否正常,XYZ 图表法帮你找到最佳使用参数。掌握这些知识,你就能避开 LoRA 训练的常见坑,从 “盲目调参” 变为 “精准训练”。

2301_78150483的博客 2399

RK平台MPP编解码实战:从源码编译到性能测试全解析

本文详细解析了在RK(瑞芯微)平台上进行MPP(Media Process Platform)多媒体编解码实战的全过程。从源码获取、交叉编译环境搭建、常见编译问题排查,到测试程序的修改调试与性能测试分析,提供了从零到一的完整指南。文章通过实测数据展示了MPP硬件编解码在嵌入式设备上的高性能与低功耗优势,帮助开发者快速掌握这一关键技术,应用于智能摄像头、视频会议终端等产品开发。

weixin_28273593的博客 543

一张图了解springboot执行流程

绝圣弃智-零的博客 1746

Linux系统centos7安装网卡驱动

有时候我们装完Centos或Ubuntu系统会发现没有网卡信息,说明网卡驱动不配置,所以我们要重新安装。 首先去服务器主板官网下载网卡驱动,注意32位和64位。 先查看网卡型号 lspci | grep -i ethernet 我的网卡型号是 00:1f.6 Ethernet controller: Intel Corporation Device 0d55。 网上一找,压根没找到这型号的网卡,别说驱动了。怀着试一试的心态,就安装i219-v系的网卡驱动,还别说,成功了。 针对i21...

wshc18的博客 2万+

SpringBoot开发——初步了解SpringBoot

Spring Boot是一个构建在Spring框架顶部的项目。它提供了一种简便,快捷的方式来设置,配置和运行基于Web的简单应用程序。它是一个Spring模块,提供了 RAD(快速应用程序开发)功能。它用于创建独立的基于Spring的应用程序,因为它需要最少的Spring配置,因此可以运行。简而言之,Spring Boot是 Spring Framework 和 嵌入式服务器的组合。在Spring Boot不需要XML配置(部署描述符)。

2509_93970010的博客 919

YF-S401水流量传感器在STM32上的精准计量实现

本文详细介绍了YF-S401水流量传感器与STM32微控制器的集成应用,实现精准水流计量。通过外部中断和外部时钟两种脉冲计数方案,结合硬件配置、软件滤波和校准技巧,确保高精度流量测量。适用于智能家居和工业自动化中的水控系统,提升系统稳定性和测量准确性。

rainy的博客 896

保姆级教程:用STM8S207R6和FD6288T自制BLDC驱动板,从原理图到代码框架搭建

本文提供了一份详细的STM8S207R6和FD6288T自制BLDC驱动板教程,涵盖从原理图设计到代码框架搭建的全过程。通过硬件选型、电源电路设计、PWM定时器配置等关键步骤解析,帮助开发者快速掌握无刷直流电机驱动技术,实现高效稳定的电机控制方案。

weixin_28729205的博客 488

【SpringBoot】了解Spring Boot:Spring Boot的常用注解介绍

Spring Boot是一个流行的Java框架,它为开发者提供了许多注解,用于简化应用程序的配置和开发。这些注解使开发者能够轻松地构建现代、高效的Java应用程序。在本博客中,我们将着重介绍一些Spring Boot中常用的注解,以便帮助您更好地理解和使用它们。

JKER97的博客 250

【数据集】全球首个10米分辨率精细分类土地覆盖数据集GLC_FCS10

【数据集】全球首个10米分辨率精细分类土地覆盖数据集GLC_FCS10

WW、forever的博客 1567

springboot启动原理_用 Spring Boot 之前一定要先了解它的启动原理

点击上方码匠笔记,选择设为星标优质文章,及时送达作者 | 平凡希来源 | https://urlify.cn/z6NNjy我们开发任何一个Spring Boot项目,都会用到如下的启动类1@SpringBootApplication2publicclassApplication{3publicstaticvoidmain(String[] args){4...

weixin_39546747的博客 149

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【深入浅出SpringBoot】了解Spring Boot自动配置原理

前言 为什么我们要用 Spring Boot,Spring Boot 最重要的功能是:自动配置。 为什么说是自动配置?先看@SpringBootApplication注解的源码。 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @Spr...

SmallCatBaby的博客 1095

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

了解SpringBoot

springboot是一个简化spring开发框架,基于maven依赖,整合了许多优秀的框架,不用手写xml配置文件,内嵌tomcat,jetty等容器,不许打成war包,方便开发人员快速搭建和开发的一个框架。参考网站:对于springboot的基础详细解析SpringBoot基础_dustdawn的博客-优快云博客_springboot基础。

m0_61281795的博客 474

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

快速了解SpringBoot

SpringBoot 介绍、SpringBoot 特性、创建SpringBoot项目的方式、@RestController注解、项目启动、自动配置、静态资源访问、全局捕获异常、渲染Web页面(模板引擎)、数据访问、事务管理、整合多数据源、日志管理、缓存支持、定时任务、异步调用、自定义参数、多环境配置、打包部署...

一个什么都不会的人 992

Spring Boot学习笔记03--深入了解SpringBoot的启动过程

[url]http://www.jianshu.com/p/cb5cb5937686[/url] SpringBoot 原理(一): 初始化 [url]http://www.jianshu.com/p/6862ea7aa29a[/url] 【深入SpringBoot 第三章】SpringApplicationRunListener及其周期 [url]http://blog.cs...

RodJohnson_523391的专栏 239

了解springboot就是这么简单

1 、什么是springboot ? 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的Tomcat 无需部署war文件 简化maven配置 自动配置spring添加对应功能starter自动化配置 答:spring boot来简化spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用 2 、Springboot 有哪些优点? ...

深夜码哥的博客 351

了解springboot

什么是springboot 简单的说springboot就是整合了很多优秀的框架,不用我们自己动动手去写一堆xml来进行配置 从本质上来说,springboot就是spring,springboot可以让你的项目快速运行起来,很容易的通过springboot创建一个诸如云的,准生产级别的基于spring框架的项目,使用springboot可以不用或者只需要很少的spring的配置 框架的特点: ...

汤圆的博客 450

springboot了解mysql_spring boot 连接Mysql介绍

Spring Boot 集成教程概述java应用的数据库接口的层次图如下JDBCJava应用通过JDBC接口访问数据库,JDBC(Java DataBase Connectivity/Java数据库连接)为各种数据库,如mysql、oracle等,提供一个统一的接口,应用程序通过JDBC执行各种SQL操作,如select、insert等等。在本文中,我们会通过JDBC访问数据库,验证数据库是否正常...

weixin_39922534的博客 219

springboot 从自制 Starter 来了解springboot核心

springboot 从自制 Starter 来了解springboot核心准备环境初始化项目 本篇主要是想通过自制Starter ,了解springboot 运行过程, 从而更深入的理解springboot 的运行机制, 不在停留在我用过springboot ,只知道表好, 却不知道在哪里… 准备环境 jdk1.8 maven 3* springboot 2.* idea 开发工具 注意: 相信大家都知道了, 但是还要提醒一下, springboot 2.0 以后对jdk 只支持1.8以上, 不在支

一人码农 476

了解Spring Boot的基础知识。

了解Spring Boot的核心,配置及优点什么是Spring Boot ?Spring Boot的核心功能。Spring Boot的优缺点。Spring Boot的配置方式。SpringBoot创建过程。springboot的三种启动方式。 什么是Spring Boot ? Spring Boot是Spring的子项目,Spring Boot是为了解决Spring的缺点而生的,主要是简化了使用 ...

Drzwl的博客 212
上一篇: Maven的基本使用
下一篇: 数据库的基本操作
Leonardo_Fibonacci
博客等级 码龄10年 110粉丝 247原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值