SpringBoot:基础篇

SpringBoot基础篇

一. SpringBoot快速入门

1.1创建SpringBoot工程

1. 手工创建

步骤①:创建工程时,选择手工创建Maven工程
步骤②:参照标准SpringBoot工程的pom文件,书写自己的pom文件即可

  • parent标签
  • springboot依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

	<!--继承父项目-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <!--springboot版本-->
        <version>2.5.4</version>
    </parent>

    <groupId>com.itheima</groupId>
    <artifactId>springboot_01_04_quickstart</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

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

</project>

步骤③:之前运行SpringBoot工程需要一个类,这个缺不了,自己手写一个就行了,建议按照之前的目录结构来创建,类名可以自定义,关联的名称一切修改即可

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(<Application.class,args);
    }
}

步骤④:下面就可以自己创建一个Controller测试一下

//Rest模式
@RestController
@RequestMapping("/books")
public class BookController {
    @GetMapping
    public String getById(){
        System.out.println("springboot is running...");
        return "springboot is running...";
    }
}

@RestController与@GetMapping注解是基于Restful开发的典型注解
步骤5:运行Application类
步骤6:在浏览器输入http://localhost:8080/books

2. idea直接创建

步骤①:创建新模块,选择Spring Initializr,并配置模块相关基础信息
在这里插入图片描述
最低要求为JDK8或以上版本,推荐使用8或11在这里插入图片描述

步骤②:选择当前模块需要使用的技术集
在这里插入图片描述
版本是2.5.4

步骤③:开发控制器类
步骤④:运行自动生成的Application类
1.运行:
在这里插入图片描述
2.结果:tomcat服务器自动启动
在这里插入图片描述
3.测试:浏览器内输入http://localhost:8080/books
在这里插入图片描述

3. 官网直接创建
  • 官网:spring.io
    在这里插入图片描述
    在这里插入图片描述
    然后会下载一个压缩文件,解压后导入idea
4. 阿里云版创建

在这里插入图片描述

1.2教你一招:在Idea中隐藏指定文件/文件夹

步骤①:打开设置,【Files】→【Settings】
步骤②:打开文件类型设置界面,【Editor】→【File Types】→【Ignored Files and Folders】,忽略文件或文件夹显示
步骤③:添加你要隐藏的文件名称或文件夹名称,可以使用*号通配符,表示任意,设置完毕即可

二. SpringBoot简介

2.1 SpringBoot程序的功能及优点

  • 起步依赖(简化依赖配置)
    依赖配置的书写简化就是靠这个起步依赖达成的
  • 自动配置(简化常用工程相关配置)
    配置过于繁琐,使用自动配置就可以做响应的简化,但是内部还是很复杂的,后面具体展开说
  • 辅助功能(内置服务器,……)
    除了上面的功能,其实SpringBoot程序还有其他的一些优势,比如我们没有配置Tomcat服务器,但是能正常运行,这是SpringBoot程序的一个可以感知到的功能,也是SpringBoot的辅助功能之一

2.2 SpringBoot程序的核心

1.引导类

引导类最典型的特征就是当前类上方声明了一个注解@SpringBootApplication
作用:加载整个项目。相当一applicationContext。所有spring框架的bean和springboot测试类都要在其包或其子包中

@SpringBootApplication
public class Springboot0101QuickstartApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext ctx = SpringApplication.run(Springboot0101QuickstartApplication.class, args);
        BookController bean = ctx.getBean(BookController.class);
        System.out.println("bean======>" + bean);
    }
}
2.parent
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.4</version>
</parent>
  • dependencies:统一定义各种依赖的版本,避免版本冲突,在pom中不用自己指定版本
  • aliyun版的pom采用引入依赖的形式实现,没有引入parent标签
3.starter
  • starter:定义了使用某种技术时对于依赖的固定搭配格式,即包含了若干坐标定义的pom管理文件
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  • 在spring-boot-starter-web中又定义了若干个具体依赖的坐标
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <version>2.5.4</version>
        <scope>compile</scope>
    </dependency>
    <!--json技术要使用的坐标-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-json</artifactId>
        <version>2.5.4</version>
        <scope>compile</scope>
    </dependency>
    <!--关于tomcat要使用到的坐标-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <version>2.5.4</version>
        <scope>compile</scope>
    </dependency>
    <!--spring技术要使用的坐标-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>5.3.9</version>
        <scope>compile</scope>
    </dependency>
    <!--springmvc技术要使用的坐标-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.9</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

SpringApplication.run(Springboot0101QuickstartApplication.class, args):即spring容器

4.内嵌tomcat
  • 位置:在spring-boot-starter-web中引用了tomcat依赖
  • 删除tomcat:排除依赖
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
        
    </dependency>
</dependencies>
  • 添加新的服务器:jetty
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>
</dependencies>
  • SpringBoot提供了3款内置的服务器

    1.tomcat(默认):apache出品,粉丝多,应用面广,负载了若干较重的组件
    2.jetty:更轻量级,负载性能远不及tomcat

    3.undertow:负载性能勉强跑赢tomcat

2.3 基础配置

pre: 复制工程
  • 原则:1.保留工程基础结构;2.抹掉原始工程痕迹;3.导入时修改pom文件中的artifactId,删除name、description
1. 核心配置文件
  1. 作用:属性配置
# 查看所有配置:在官网的application-properties附件

#  修改服务器端口:
server.port=80
#修改banner
spring.main.banner-mode=off
# 日志
logging.level.root=info
  1. 配置文件格式

1)application.properties(properties格式)

# key=value
server.port=80

2)application.yml(yml格式)常用

server:
  port: 81

3)application.yaml(yaml格式)

server:
  port: 82
  • 优先级 :properties>yml>yaml
    相同配置按照优先级顺序,不同配置会保留
  • idea设置配置文件步骤
    在这里插入图片描述在这里插入图片描述
2. yaml文件
  • YAML(YAML Ain’t Markup Language):
    一种数据序列化格式。具有容易阅读、容易与脚本语言交互、以数据为核心,重数据轻格式的特点。常见的文件扩展名有两种:

  • 文件扩展名:

    • .yml格式(主流)
    • .yaml格式
  • 严格的语法要求:
    1.大小写敏感
    2.属性层级关系使用多行描述,每行结尾使用冒号结束
    3.使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
    4.属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
    5.#号 表示注释
    6.同级不可有重复的属性名

  • 不同数据类型写法

    • 普通数据、数组、对象、对象数组、引用、转义字符

例:

# 1.常见数据
boolean: TRUE  						#TRUE,true,True,FALSE,false,False均可
float: 3.14    						#6.8523015e+5  #支持科学计数法
int: 123       						#0b1010_0111_0100_1010_1110    #支持二进制、八进制、十六进制
null: ~        						#使用~表示null
string: HelloWorld      			#字符串可以直接书写
string2: "Hello World"  			#可以使用双引号包裹特殊字符
date: 2018-02-17        			#日期必须使用yyyy-MM-dd格式
datetime: 2018-02-17T15:02:31+08:00  #时间和日期之间使用T连接,最后使用+代表时区

# 2.数组:属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔
subject:
	- java
	- web
	- c++
	# 数组缩略格式
subject2:[java,web,c++]

# 4.对象数组:格式一
users0:							
  - name: Tom
   	age: 4
  - name: Jerry
    age: 5
# 格式二
users1:							
  -  
    name: Tom
    age: 4
  -   
    name: Jerry
    age: 5
#对象数组缩略格式			    
users2: [{name:Tom,age:4} , {name:Jerry,age:5} ]	

# 5.引用型数据
firstname: Yao
name: ${firstname}Goushi

# 6.转义字符:在字符串外加双引号。\t为空格
name2: "Yao\tGoushi"

3. yaml数据读取
  • 1.读取单一数据
    格式:@Value("${一级属性名.二级属性名…}")
@Value("${name}")//基本数据:此处name对应于yaml文件中的name
private String name1;

@Value("${user.name}")//对象:此处对应于yaml文件中的user对象的name属性
private String name2;

@Value("${subjects[0]}")//数组:此处name对应于yaml文件中的subjects数组的第一个元素
private String name3;
  • 2.读取yaml全部属性数据
    格式:首先加载environment对象;再根据environment获取
@Autowired
private Environment env;

public String test(){
	System.out.println(env.getProperty("name"));
}
  • 3.自定义对象封装数据
    步骤:
    1)首先定义一个对象User.class
    2)添加注解@Component:将该对象纳入Spring管控的范围,也就是定义成一个bean
    3)添加注解@ConfigurationProperties(prefix=“user”):将要读取的yml数据配置到类中
    prefix=value
    4)测试:
# 数据
users:							
  name: Tom
  age: 4
  subject: 
    - java
    - web
    - c++
//对象类
@Component
@ConfigurationProperties(prefix="user")
public class User{
	private String name;
	private Integer age;
	private String[] subject;
}
//测试
@RestController
@RequestMapping("/test")
public class TestController{

	@Autowired
	private User user;
	public void main(){
		System.out.println(user);
	}
}

三. SpringBoot整合第三方技术

  • 通用技术:
    • 1.导入对应技术的starter
    • 2.根据提供的配置格式,在配置文件中配置非默认值对应的配置项

3.1 整合JUnit

  • 1.配置环境:

    • pom文件(junit不需要添加)
      • 当不使用其他技术时,dependency只导入:spring-boot-starter
      • 当使用其他技术时,dependency导入:spring-boot-starter-web
      • spring-boot-starter-web的第一个依赖就是spring-boot-starter
      • 默认导入dependency:spring-boot-starter-test
    • 配置文件(不需要添加)
  • 2.测试

1)编写测试类

@Repository
public class BookImpl implements BookDao {
    @Override
    public void save() {
        System.out.println("正在执行。。。。");
    }
}

2)在SpringbootTest01ApplicationTests测试类中添加测试方法
- a.注入测试类的对象
- b.调用测试方法

@SpringBootTest
class SpringbootTest01ApplicationTests {

    @Autowired
    private BookDao bookDao;

    @Test
    void contextLoads() {
        bookDao.save();
    }

}

@SpringBootTest:

  • 名称:测试类注解
  • 位置:位于测试类上方
  • 作用:设置JUnit加载的SpringBoot启动类
  • 参数:
    • 引导类测试类同一包下面时,不需要加参数
    • 当不在同一包下面时,需要使用参数:@SpringBootTest(classes=SpringbootTest01Application.class)
    • 当在不同包时,不添加参数的方法:添加@ContextConfiguration(classes=SpringbootTest01Application.class)

3.2 整合MyBatis

  • 1.配置环境:
    • pom文件
      • 在创建项目初:添加dependencies时,选择SQL->MyBatis framework、MySql Driver
      • pom.xml中有:mybatis-spring-boot-starter(非spring技术时,第三方在前面)、mysql-connector-java(5和8有区别)
    • 配置文件
      • 在application.yml中设置数据源参数
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.driver
    url: localhost://8080
    username: root
    password: root
  • 2.测试
    • 创建实体,创建Mapper接口、创建mapper配置文件、在测试类中注入mapper接口、执行测试

3.3 整合MyBatis-Plus

  • 1.配置环境:
    • pom文件
      • 在创建项目初:添加dependencies时,选择SQL->MySql Driver
      • 添加mp技术:因为在开始页面找不到mp,只能在pom中手动添加MyBatis-Plus依赖
        • 在maven网站:www.mvnrespository.com中找到依赖
          <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3</version> </dependency>
    • 配置文件
      • 在application.yml中设置数据源参数
      • 设置mp相关配置
# 数据源参数
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.driver
    url: localhost://8080
    username: root
    password: root
 # mp配置(为实体user添加前缀,可在数据库找到tbl_user表格)
 mybatis-plus:
   global-config:
     db-config:
       table-prefix:tbl_
  • 2.测试
    • 创建实体,创建Mapper接口继承BaseMapper(泛型)、为实体类添加关联数据库表、在测试类中注入mapper接口、执行测试

3.4 整合Druid

  • 1.配置环境:
    • pom文件
      • 在创建项目初:添加dependencies时,选择SQL->MySql Driver、mybatis
      • 添加druid技术: 在maven网站中找到druid spring boot starter
        • 在maven网站:www.mvnrespository.com中找到依赖
          <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency>
    • 配置文件
      • 在application.yml中设置数据源参数
# 1.通用方式:
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.driver
    url: localhost://8080
    username: root
    password: root
    type:com.alibaba.druid.pool.DruidDataSource
#2.druid专用方式
  spring:
    datasource:
      druid:
        driver-class-name: com.mysql.jdbc.driver
        url: localhost://8080
        username: root
        password: root
   
  • 2.测试
    • 创建实体,创建Mapper接口继承BaseMapper(泛型)、为实体类添加关联数据库表、在测试类中注入mapper接口、执行测试
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot中进行删除操作可以通过以下步骤实现: 1. 在SpringBoot项目中创建一个处理删除请求的方法。这个方法可以使用@RequestMapping注解来映射一个URL路径,并使用@DeleteMapping注解指定HTTP请求的方法为DELETE。在这个方法中,可以调用相应的服务层或数据访问层方法来执行删除操作。 2. 在删除方法中,可以通过传入参数来获取要删除的数据的唯一标识符。根据具体的业务需求,可以从前端页面获取该参数,或者通过URL路径的方式传递参数。 3. 在删除方法中,可以使用合适的方式来执行删除操作,例如调用JPA的deleteById方法或者使用自定义的SQL语句执行删除操作。根据操作的结果,可以返回相应的响应信息,例如删除成功或者删除失败。可以使用相应的消息提示框来展示删除结果。 总结起来,SpringBoot的删除操作可以通过以下步骤实现:在SpringBoot项目中创建一个处理删除请求的方法,获取要删除的数据的唯一标识符,执行删除操作并返回相应的结果。这样就可以在SpringBoot中完成删除操作了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringBoot SpringBoot 基础篇 4 基于 SpringBoot 的SSMP 整合案例 4.15 删除功能](https://blog.csdn.net/weixin_44226181/article/details/127828197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值