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: /start2port: 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_cacbcode: awdawdawdhost: 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.Driverurl: jdbc:mysql://localhost:3306/cary_cacbusername: rootpassword: 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;}@Overridepublic 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 {@Autowiredprivate BookMapper bookMapper;@Overridepublic Book getByID(Integer id) {return bookMapper.getByID(id);}
}
5、controller
public class BookController {@Autowiredprivate BookService bookService;@RequestMapping("getByID")public Book getByID(Integer id){return bookService.getByID(id);}
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞桨大模型分布式训练技术

今天我为大家介绍飞桨大模型分布式训练技术&#xff0c;内容分为以下几个部分&#xff1a; 首先&#xff0c;我会介绍大模型训练面临的重点难题&#xff1b;然后&#xff0c;为大家介绍飞桨在大模型训练领域的特色分布式训练技术和优化方案&#xff1b;最后&#xff0c;伴随着…

深度学习-自注意力机制

文字编码 one-hot编码&#xff0c;让模型自己去学习怎么进行编码 常见的输出 1.每个词都有一个输出值 2.每个句子输出一个值&#xff0c;情感分类 3.输入与输出长度不对应&#xff0c;翻译任务&#xff0c;生成任务。 RNN最早的语言处理 RNN解决的是模型去考虑前面的输入…

NoSQL数据库简介

NoSQL数据库简介 Brief Introduction to NoSQL Databases By JacksonML 1. 什么是SQL&#xff1f; 在了解NoSQL之前&#xff0c;先简要介绍一下SQL。 SQL是 Structured Query Language&#xff08;结构化查询语言&#xff09;的缩写。 SQL在关系型数据中广泛使用&#xf…

IS-IS:06 ISIS路由汇总

与OSPF 协议相同&#xff0c; IS-IS 也能够通过路由聚合来减少路由条目。不同的是&#xff0c;OSPF 只能在ABR 和ASBR 路由器上进行路由聚合&#xff0c;而IS-IS 路由器能否进行路由聚合以及对什么样的路由才能进行聚合取决于路由器的类型及路由的类型。 在IS-IS 网络中&#x…

生产问题排查系列——redis告警连接异常问题排查

项目背景 我们的项目使用redis的场景主要是有两种&#xff0c;一是使用redis缓存各种业务信息&#xff0c;二是使用redis做分布式锁。主要是引用了两个框架jedis和redisson。 Jedis是Redis的Java实现的客户端&#xff0c;其API提供了比较全面的Redis命令的支持&#xff1b; …

第16次修改了可删除可持久保存的前端html备忘录:做个可以隐藏的文本操作窗口,添加了选择文本拖动复制,配了背景主题:现代深色

第16次修改了可删除可持久保存的前端html备忘录&#xff1a;隐藏了文本操作按钮&#xff0c;添加了选择文本拖动复制&#xff0c;配了背景主题&#xff1a;现代深色 备忘录代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta ch…

代码随想录算法训练营第二二天| 二叉搜索树的最近公共祖先、二叉搜索树中的插入操作、删除二叉搜索树中的节点

目录 二叉搜索树的最近公共祖先二叉搜索树中的插入操作删除二叉搜索树中的节点普通二叉树的删除方式 LeetCode 235. 二叉搜索树的最近公共祖先 LeetCode 701.二叉搜索树中的插入操作 LeetCode 450.删除二叉搜索树中的节点 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到…

腾讯云SDK并发调用优化方案

目录 一、概述 二、 网关的使用 2.1 核心代码 三、腾讯云SDK依赖包的改造 一、概述 此网关主要用于协调腾讯云SDK调用的QPS消耗&#xff0c;使得多个腾讯云用户资源能得到最大限度的利用。避免直接使用腾讯云SDK 时&#xff0c;在较大并发情况下导致接口调用异常。网关的工…

漏洞原理SSRF漏洞

漏洞原理SSRF漏洞 服务器请求伪造 SSRF(Server Side Request Forgery)是一种服务器端请求伪造漏洞。它允许攻击者利用后端服务器来发送未经授权的请求。攻击者可以通过修改请求的目标地址,将请求发送到内部网络或其他受信任的服务器上,从而绕过防火墙和访问控制。 SSRF漏洞…

Pyecharts绘制多种炫酷气泡图

Pyecharts绘制多种炫酷气泡图 引言 数据可视化是数据分析中不可或缺的一环&#xff0c;而Pyecharts作为一款基于Echarts的Python图表库&#xff0c;提供了丰富的图表类型&#xff0c;其中气泡图是一种常用于展示三维数据的炫酷图表。本文将介绍如何使用Pyecharts绘制多种炫酷…

91 C++对象模型探索。RTTI运行时类型识别回顾 与 存储位置介绍

一&#xff0c;RTTI 运行时类型识别&#xff0c;简单回顾 C运行时类型识别RTTI&#xff0c;要求父类这种必须 至少有一个虚函数&#xff0c;如果父类中没有虚函数&#xff0c;那么得到的RTTI就不准确&#xff1b; RTTI就可以在执行期间查询一个多态指针&#xff0c;或者多态应…

五大架构风格之一:数据流风格

数据流风格详细介绍 系统架构数据流风格是一种软件体系结构风格&#xff0c;它强调了系统内部不同部分之间的数据流动。这种风格侧重于描述系统中的数据处理过程&#xff0c;以及数据是如何从一个组件传递到另一个组件的。以下是系统架构数据流风格的详细介绍&#xff1a; 1 基…