Spring Boot第一天

SpringBoot概述

Spring Boot是Spring提供的一个子项目,用于快速构建Spring应用程序

传统方式构建Spring应用程序

               导入依赖繁琐

               

项目配置繁琐 

 

为了简化如此繁琐的配置流程,SpringBoot这一子项目提供了如下特性

SpringBoot特性

起步依赖

本质上就是一个Maven坐标,整合了完成一个功能所需要的所有坐标

自动配置

遵循约定大于配置的原则,再boot程序启动后,一些Bean对象会自动注入到IOC容器,不需要手动声明,简化开发

其他特性

内嵌的Tomcat、Jetty(无需部署WAR文件)

外部化配置

不需要XML配置(properties/yml)

IDEA创建SpringBoot工程步骤

第一步、创建Maven工程 

第二步、导入spring-boot-stater-web起步依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

第三步、编写Controller

以我用于测试的hellocontroller为例

@RestController
public class helloController {

    @RequestMapping("/hello")
    public String hello(){
        System.out.println("hello");
        return "hello";
    }
}

第四步、提供启动类

@SpringBootApplication
public class SpringBootQsDemo1Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootQsDemo1Application.class, args);
    }

}

 

手动创建SpringBoot工程

第一步、创建Maven工程

第二步、引入依赖

继承parent工程

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

 引入相应起步依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

第三步、提供启动类

@SpringBootApplication
public class SpringBootQsDemo1Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootQsDemo1Application.class, args);
    }

}

SpringBoot 配置文件

properties配置文件

application.properties

以配置端口和访问路径为例

server.port=8080
server.servlet.context-path=/start

yaml配置文件

application.yml / application.yaml

同上例

server:
  servlet:
    context-path: /start2
  port: 8282

在实际开发中,更常用的是yaml配置文件

yaml层级表示更加明显

yml配置信息书写与获取

书写

第一种、三方技术配置信息

第二种、自定义配置信息

例如,如果我们在类中要调用email.username,email.code,email.host这三个值

在配置文件中就应该进行如下书写

application.properties

email.user=Cary_cacb
email.code=dawdawdadawd
email.host=smtp.qq.com

 application.yml / application.yaml

email:
  user: Cary_cacb
  code: awdawdawd
  host: smtp.qq.com 

 yml书写注意事项:

        值前边必须有空格,作为分隔符

        使用空格作为缩进表示层级关系,相同的层级左对齐

获取

以上面配置的三个键为例

在实体类中进行如下书写

    @Value("${email.user}")
    private String user;
    @Value("${email.code}")
    private String code;
    @Value("${email.host}")
    private String host;

还可以使用@ConfigurationProperties()注解来完成

沿用上例

在实体类中进行如下书写

@ConfigurationProperties(prefix = "email")
@Component
public class EmailController {

    private String user;
    private String code;
    private String host;
}

注意事项:该注解中的perfix必须与配置未见中的前缀名一致

类内部的成员变量名与配置文件中的键名也要保持一致

SpringBoot 整合Mybatis

第一步、导入mybatis和mysql相关坐标

		<dependency>
			<groupId>com.mysql</groupId>
			<artifactId>mysql-connector-j</artifactId>
		</dependency>

		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>3.0.3</version>
		</dependency>

第二步、配置application.yml配置文件

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/cary_cacb
    username: root
    password: psw

第三步、书写相关文件,实现调用

以之前用过的tbl_book表为例

1、给出Book实体类

package com.cacb.springboot_mybatis.pojo;

public class Book {
    private Integer id ;
    private String type;
    private String name;
    private String description;

    public Book(Integer id, String type, String name, String description) {
        this.id = id;
        this.type = type;
        this.name = name;
        this.description = description;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", type='" + type + '\'' +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                '}';
    }
}

2、BookMapper

@Mapper
public interface BookMapper {
    @Select("select * from tbl_book where id = #{id}")
    public Book getByID(Integer id);


}

3、service层

public interface BookService {
    public Book getByID(Integer id);
}

4、serviceimpl

@Service
public class BookServiceImpl implements BookService {
    @Autowired
    private BookMapper bookMapper;
    @Override
    public Book getByID(Integer id) {
        return bookMapper.getByID(id);
    }
}
5、controller
public class BookController {
    @Autowired
    private BookService bookService;

    @RequestMapping("getByID")
    public Book getByID(Integer id){
        return bookService.getByID(id);
    }
}

使用测试软件测试结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/362019.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

集显如何安装pytorch (CPU)

目录 前言1. 注意事项2. CPU版 前言 此为记录贴&#xff0c;原先都是独显&#xff0c;安装GPU&#xff0c;第一次查看发现是集显&#xff0c;没有配备的GPU 1. 注意事项 验证自身是否为独显&#xff1a;cmd下执行 DxDiag 如果Graphics则为集显&#xff0c;代表只能操作CPU模…

腾讯云幻兽帕鲁Palworld服务器价格表,2024年2月最新

腾讯云幻兽帕鲁服务器价格32元起&#xff0c;4核16G12M配置32元1个月、96元3个月、156元6个月、312元一年&#xff0c;支持4-8个玩家&#xff1b;8核32G22M幻兽帕鲁服务器115元1个月、345元3个月&#xff0c;支持10到20人在线开黑。腾讯云百科txybk.com分享更多4核8G12M、16核6…

DevOps落地笔记-03|用户故事:对用户需求达成共识的关键

上一讲主要跟你介绍了如何使用影响地图这个工具来进行产品定义、里程碑规划和用户需求分析。影响地图让我们始终以达到目标为核心&#xff0c;并让功能和需求不偏离该目标&#xff0c;从而让交付更有重点。可视化、结构化的思维导图为技术和业务人员创建了共享的整体视图&#…

【AI视野·今日Robot 机器人论文速览 第七十七期】Mon, 15 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Mon, 15 Jan 2024 Totally 14 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Learning Joint Space Reference Manifold for Reliable Physical Assistance Authors Amirreza Razmjoo, Tilen Brecelj, Kri…

VUE3+elementPlus 之 Form表单校验器 之 字符长度校验

需求&#xff1a;校验字符长度&#xff0c;超过后仍可输入&#xff0c;error提示录入字符数与限制字符数 校验字符长度&#xff1a; /*** 检验文字输入区的长度* param {*} rule 输入框的rule 对象&#xff0c;field&#xff1a;字段名称* param {*} value …

【京东云新品发布月刊】2024年1月产品动态来啦

1&#xff09;【莫奈可视化平台】新品上线 京东莫奈可视化平台通过自由拖拽、图形化编辑、所见即所得的方式&#xff0c;快速实现极致酷炫、直观清晰的视觉场景&#xff0c;将海量繁杂数据背后所蕴含的价值更直观、深层、全面的展现出来&#xff0c;辅助决策者合理决策。 2&a…

【Oracle云】OCI DevOps Services 构建自动化流水线 (1) - 基础架构流程 OCI 代码仓库使用

OCI DevOps Services 是 Oracle Cloud Infrastructure (OCI) 提供的一项独立的 CI/CD 服务&#xff0c;旨在支持用户构建自动化的流水线&#xff0c;实现更高效、可靠的软件交付。在本系列的第一篇文章中&#xff0c;我们将深入探讨 OCI DevOps Services 的基础架构流程&#x…

基于MATLAB实现的OFDM仿真调制解调,BPSK、QPSK、4QAM、16QAM、32QAM,加性高斯白噪声信道、TDL瑞利衰落信道

基于MATLAB实现的OFDM仿真调制解调&#xff0c;BPSK、QPSK、4QAM、16QAM、32QAM&#xff0c;加性高斯白噪声信道、TDL瑞利衰落信道 相关链接 OFDM中的帧&#xff08;frame&#xff09;、符号&#xff08;symbol&#xff09;、子载波&#xff08;subcarriers&#xff09;、导频…

JVM工作原理与实战(三十一):诊断内存泄漏的原因

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、诊断原因 二、MAT内存泄漏检测的原理 总结 前言 JVM作为Java程序的运行环境&#xff0c;其负责解释和执行字节码&#xff0c;管理内存&#xff0c;确保安全&#xff0c;支持多线…

网络异常案例五_SYN被丢弃

问题现象 公司同事使用的时候&#xff0c;反馈系统不稳定&#xff0c;访问的时候&#xff0c;有时候会出现白屏&#xff08;连接超时&#xff09;&#xff0c;或者系统页面点击没有响应&#xff0c;过一会之后刷新系统又可以正常展示了。之前未收到过类似反馈&#xff0c;一直…

༺༽༾ཊ—Unity之-02-抽象工厂模式—ཏ༿༼༻

首先创建一个项目&#xff0c; 在这个初始界面我们需要做一些准备工作&#xff0c; 建基础通用文件夹&#xff0c; 创建一个Plane 重置后 缩放100倍 加一个颜色&#xff0c; 任务&#xff1a;使用 抽象工厂模式 创建 人物与宠物 模型&#xff0c; 首先资源商店下载 人物与宠物…

huggingface打不开,解决方法

解决方法 将 https://huggingface.co/hustvl/Vim-tiny替换成 https://hf-mirror.com/hustvl/Vim-tiny文章目录 解决方法摘要YoloV8改进策略&#xff1a;基于分层注意力的FasterViT&#xff0c;让YoloV8实现性能的飞跃YoloV8改进策略&#xff1a;InceptionNext主干替换YoloV8…

第九节HarmonyOS 常用基础组件21-ImageAnimator

1、描述 提供帧动画组件来实现逐帧播放图片的能力&#xff0c;可以配置需要播放的图片列表&#xff0c;每张图片可以配置时长。 2、接口 ImageAnimator() 3、属性 参数名 参数类型 描述 images Array<ImageFrameInfo> 设置图片帧信息集合&#xff0c;每一帧的帧…

【零基础学习CAPL】——CAN报文的发送(按下按钮同时周期性发送)

🙋‍♂️【零基础学习CAPL】系列💁‍♂️点击跳转 文章目录 1.概述2.面板创建3.系统变量创建4.CAPL实现4.1.函数展示4.2.全量报文展示5.效果1.概述 本章主要介绍使用CAPL和Panel在按下按钮时发送周期性CAN报文。 本章主要在“【零基础学习CAPL】——CAN报文的发送(配合P…

二叉树-堆应用(1)

目录 堆排序 整体思路 代码实现 Q1建大堆/小堆 Q2数据个数和下标 TopK问题 整体思路 代码实现 Q1造数据CreateData Q2建大堆/小堆 建堆的两种方法这里会用到前面的向上/向下调整/交换函数。向上调整&向下调整算法-CSDN博客 堆排序 整体思路 建堆&#xff08;直…

android远程投屏应用

客户端app地址&#xff1a;https://gitee.com/youzilzk/blue1.git 服务端地址&#xff1a;https://gitee.com/youzilzk/blue-server1.git 一。服务端部署 1.安装postgres 2.导入项目下blue.sql文件 3.修改配置application.properties和config.properties&#xff0c;其中applic…

Flask框架开发学习笔记《6》前后端不分离基础框架

Flask框架开发学习笔记《6》前后端不分离基础框架 Flask是使用python的后端&#xff0c;由于小程序需要后端开发&#xff0c;遂学习一下后端开发。 主要包含如下文件&#xff1a; static 目录中存储了图片templates 目录中存储了 html 文件utils.py 包含了 log 函数server.p…

人工智能福利站,初识人工智能,机器学习,第三课

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

备战蓝桥杯---数据结构与STL应用(优先队列的小细节)

很显然&#xff0c;我们先二分求X,对于验证&#xff0c;一开始我先想的是直接求每个的不足电量再除充电量后向上取整&#xff0c;然后判断与k的大小关系。事实上&#xff0c;如果让k很大&#xff0c;若有两只手机在下一刻多没电&#xff0c;显然上述方法得出的结论是错误的&…

Java的常见api以及异常情况-1

目录 1、什么是API &#xff1f; 2、Object类 3、equals方法 4、内存中的比较方法 5、instanceof 关键字 1、什么是API &#xff1f; 1.API(Application ProgrammingInterface,应用程序编程接口)2.Java中的API 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将…