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... 阅读详情

相关推荐

二阶FLL辅助三阶PLL环路的代码解读

今天对GNSS接收机里面的载波跟踪环路代码进行了解读 以下是个人的一点见解 % 载波环第二步:环路滤波器 二阶FLL辅助三阶PLL环路 carrLoopS0 = lastCarrLoopS0 + (phaseErr*tau0PLL + freqErr*tau1FLL) * PDIcarr; carrLoopS1 = lastCarrLoopS1 + (tau1PLL*phaseErr + carrLoopS0 + tau2FLL*freqErr) * PD

LWN7321的博客 2629

SpringBoot-了解SpringBoot

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

shenzhen_zsw的专栏 538

团结引擎+OpenHarmony 2实战篇:从零构建鸿蒙应用开发环境

本文详细介绍了如何从零开始构建鸿蒙应用开发环境,重点讲解了团结引擎与OpenHarmony 2的实战配置步骤。内容包括DevEco Studio安装、OpenHarmony SDK配置、团结引擎集成及项目创建等关键环节,帮助开发者快速搭建高效的开发环境,提升鸿蒙应用开发效率。

weixin_29294395的博客 262

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

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

chen 604

Android11.0系统中适配EC20模块4G及GPS功能

本文主要描述在RK3568Android11中适配EC20模块,启用4G与GPS功能。

yjz_0314的博客 2791

c# U盘禁用---守护进程(插入,拔出,卸载等操作)

一、简介 传统的对U盘禁用,我们多采用修改注册表的方式,详情参考:https://blog.youkuaiyun.com/qq_25372599/article/details/79815407;本文将介绍一种其他的方式–后台守护程序。其原理非常简单:当守护程序检测到U盘的插入信号,我们自动卸载U盘,致使系统无法识别U盘,达到禁用U盘的效果。 二、程序设计 2.1 变量定义 strin...

星星之火燃亮码空 2845

一张图了解springboot执行流程

绝圣弃智-零的博客 1746

2.实体机安装TrueNAS 方法

访问不了可以使用以下连接:提取码:0927。

Unofficial_user的博客 7431

SpringBoot开发——初步了解SpringBoot

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

2509_93970010的博客 919

Doris存储层设计介绍2——数据写入及删除流程

Doris存储层设计介绍2——数据写入及删除流程

爱吃辣条的博客 4585

20、自定义用户窗体:从创建到使用

本文详细介绍了在Excel VBA中创建和使用自定义用户窗体的完整过程,涵盖从窗体设计、控件添加与属性设置,到事件处理程序编写及宏调用的各个环节。通过实际示例讲解了如何实现文本大小写转换和员工信息录入等功能,并深入解析了常用控件的属性与事件机制。同时提供了控件命名规范、快捷键使用、布局技巧等实用建议,帮助读者构建高效、交互性强的VBA用户界面。

h0i1j2k3l的博客 131

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

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

JKER97的博客 250

ClawManager实战:OpenClaw批量部署+精细化权限管控,运维效率拉满90%

ClawManager彻底解决了OpenClaw规模化部署的运维痛点,它不是简单的“批量部署工具”,而是一套完整的企业级管理方案——从模板配置、批量部署,到权限管控、监控审计、AI治理,覆盖OpenClaw全生命周期管理,让OpenClaw从“个人工具”升级为“企业级AI基础设施”。对于中小企业,Docker一键部署即可快速落地,无需复杂配置;对于大型企业,K8s部署支持高可用、横向扩展,结合Keycloak对接企业现有认证系统,可完美融入企业IT架构。

2601_94871597的博客 607

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

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

weixin_39546747的博客 149

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

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

SmallCatBaby的博客 1095

android 蓝牙通讯demo

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

了解SpringBoot

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

m0_61281795的博客 474

快速了解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、付费专栏及课程。

余额充值