SpringBoot 学习笔记文章

一、Spring Boot环境配置

1.1 Java开发环境

确保你的计算机已经安装了Java Development Kit(JDK)。建议使用JDK 17,可以从Oracle官方网站上下载并安装。

1.1.1下载安装包配置环境变量

  1. 下载JDK:https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.exe ( sha256)

  2. 运行安装程序:双击下载的JDK安装包,并按照安装向导的指示进行操作。根据操作系统的要求,可能需要管理员权限。

  3. 设置安装路径:选择JDK的安装路径。默认情况下,它会被安装在操作系统的默认目录中。你可以选择接受默认路径,或自定义一个路径。

 1.1.2 配置环境变量

  • 打开“控制面板” -> “系统和安全” -> “系统”。

  • 点击“高级系统设置”链接,打开“系统属性”窗口。

  • 在“系统属性”窗口中,点击“环境变量”按钮。

  • 在“环境变量”窗口中,找到“系统变量”部分,点击“新建”按钮。

  • 输入变量名为JAVA_HOME,变量值为JDK的安装路径(例如:C:\Program Files\Java\jdk1.8.0_271)。

  • 找到“系统变量”中的“Path”变量,点击“编辑”按钮。

  • 在“编辑环境变量”窗口中,点击“新建”按钮。

  • 输入变量值为%JAVA_HOME%\bin

  • 依次点击“确定”保存所有设置。

1.1.3 验证安装 

java -version
javac -version

如果能够正确显示Java版本信息,则说明安装成功。 

  1.2 构建工具(Maven)

Spring Boot支持多种构建工具,如Maven和Gradle。你可以选择其中一个构建工具进行项目的管理和依赖管理。确保已经正确安装并配置了所选的构建工具。

1.2.1下载及配置环境变量

  1. 下载Maven:访问Apache Maven官方网站:https://maven.apache.org/download.cgi

  2. 解压缩Maven:将下载的Maven二进制压缩包解压到任意位置。建议解压到一个稳定、不易更改的目录中,例如 /usr/localC:\Program Files

  3. 配置环境变量(Windows):

    1. 打开“控制面板” -> “系统和安全” -> “系统”。

    2. 点击“高级系统设置”链接,打开“系统属性”窗口。

    3. 在“系统属性”窗口中,点击“环境变量”按钮。

    4. 在“环境变量”窗口中,找到“系统变量”部分,点击“新建”按钮。

    5. 输入变量名为MAVEN_HOME,变量值为Maven解压所在的绝对路径(例如:C:\apache-maven-3.8.8)。

    6. 找到“系统变量”中的“Path”变量,点击“编辑”按钮。

    7. 在“编辑环境变量”窗口中,点击“新建”按钮。

    8. 输入变量值为%MAVEN_HOME%\bin

    9. 依次点击“确定”保存所有设置。

  4. 验证安装:打开命令提示符或终端窗口,并运行以下命令来验证Maven是否正确安装:

mvn -version

如果能够正确显示Maven版本信息,则说明安装成功。

Maven下载安装及配置环境变量(图文介绍):https://blog.csdn.net/u012660464/article/details/114113349

1.2.2 配置Maven仓库

①下面是配置Maven本地仓库的步骤:
  1. 打开Maven的配置文件:在你的计算机上找到Maven的安装目录,进入 conf 文件夹。在该文件夹中,你会找到一个名为 settings.xml 的配置文件。

  2. 编辑配置文件:使用文本编辑器打开 settings.xml 文件。

  3. 配置本地仓库路径:在 <settings> 标签内,找到 <localRepository> 元素。这个元素用于指定本地仓库的路径,默认情况下会被注释掉。取消注释并填写你想要设置的本地仓库路径。例如:


<localRepository>/path/to/your/local/repository</localRepository>

/path/to/your/local/repository 替换为你希望使用的本地仓库路径,。

保存并关闭配置文件

默认情况下,Maven将本地仓库设置为用户主目录下的 .m2 文件夹(例如:C:\Users\YourUsername\.m2/home/username/.m2)。你可以根据需要将其更改为其他路径,如:D:\develop\maven3.8.8\mvn_resp

②配置阿里云远程仓库的步骤:
  1. 打开Maven的配置文件:在你的计算机上找到Maven的安装目录,进入 conf 文件夹。在该文件夹中,你会找到一个名为 settings.xml 的配置文件。

  2. 编辑配置文件:使用文本编辑器打开 settings.xml 文件。

  3. <settings> 标签内,找到 <mirrors> 元素。如果该元素不存在,则手动添加它。

  4. <mirrors> 元素内,添加阿里云远程仓库的配置。例如:

<mirrors>
    <mirror>
        <id>aliyun</id>
        <name>Aliyun Maven Mirror</name>
        <url>https://maven.aliyun.com/repository/public</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>
  • 上述示例配置了一个名为 aliyun 的镜像,名称为 Aliyun Maven Mirror,URL为 https://maven.aliyun.com/repository/public<mirrorOf> 元素用于指定这个镜像将代理的仓库。 central,表示代理中央仓库。

  • 保存并关闭配置文件

配置完成后,Maven将使用阿里云作为远程仓库,从阿里云下载项目的依赖库。

1.2.3 配置JDK和Maven

IDEA中如何配置JDK:https://juejin.cn/post/7024078227282853924

IDEA中如何配置Maven:https://juejin.cn/post/6844904096961396749?searchId=20230905154132D113B687F6BB6AD98CC3

二、创建项目

2.1使用Maven创建Spring Boot项目

2.1.1 创建Maven项目

  1. 打开 IntelliJ IDEA,选择 "File" -> "New" -> "Project"。

  2. 在左侧面板中选择 "Maven",然后点击 "Next

  3. 在 "Project SDK" 中选择你想要使用的 JDK 版本,然后点击 "Next"。

  4. 在 对话框中,配置项目的基本信息:

    1. Group: 设置项目的 GroupId,例如 com.lzzy

    2. Artifact: 设置项目的唯一标识符,一般和项目名相同,例如 my-spring-boot1

    3. Name: 设置项目的名称

    4. Version:使用默认生成的版本号

  5. 创建完成后会默认打开Maven项目生成的pom.xml依赖文件。

4.1.2 添加Spring Boot相关依赖

编辑项目的 pom.xml 文件,添加 Spring Boot 相关的依赖。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.7.15</version>
</parent>
<dependencies>
    <!-- Spring Boot Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <!-- Spring Boot Web Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

2.1.3 编写主程序启动类

  1. 创建一个 Spring Boot 应用程序的主类,通常命名为 Application.java,包含 main 方法。这个类将作为应用程序的入口点

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication//这个注解是标注一个Spring Boot应用
public class Application {

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

}

2.1.4 运行启动项目

运行 Spring Boot 应用程序:右键点击 Application 类,选择 "Run Application.main()",或者点击类上方的绿色三角形按钮。

打开浏览器,并访问 http://localhost:8080/hello,你将会看到输出 Hello, world!

 三、核心配置与注解

3.1 全局配置文件

更多配置属性,详见官网https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.htm

3.2 application.properties配置文件

3.2.1 主要作用 

  1. 简化配置:Spring Boot致力于简化配置,通过application.properties文件,开发人员可以集中管理大部分应用程序的配置。相比传统的XML或Java配置方式,使用键值对的形式,使配置文件更加简洁和易于维护。

  2. 外部化配置:application.properties文件支持外部化配置,即将配置项的值从代码中分离出来,在不修改代码的情况下,通过修改配置文件来改变应用程序的行为。这样可以方便地进行配置的切换和动态调整。

  3. 配置多个环境:Spring Boot允许在不同的配置文件中定义相同的属性,通过激活不同的配置文件来选择不同的应用程序行为。例如,可以使用application-dev.properties和application-prod.properties文件来分别配置开发环境和生产环境的属性。

  4. 支持属性引用和覆盖:通过${key}形式,可以在application.properties文件中引用其他属性的值,使属性之间可以相互关联和依赖。而且使用相同的键在不同的配置文件中定义,可以实现针对不同环境的属性覆盖。

3.2.2 基本语法

  1. 键值对格式:每行表示一个配置项,采用key=value的格式,其中"key"表示配置项的名称,"value"表示配置项的值。

  2. 注释:可以使用'#'号在配置文件中添加注释,'#'号后面的内容将被忽略。例如:# 这是一个注释

  3. 引号:如果配置项的值包含特殊字符或空格,可以使用双引号或单引号将其括起来。例如:key="value with spaces"

  4. 特殊字符的转义:如果配置项的值中包含特殊字符,可以使用反斜杠进行转义。例如:key=value\#with\#hash

3.2.3 举例说明

①基本数据类型:
server.port=8081
server.servlet.context-path=/home
persion.name=xiaoming
②复杂数据类型 :
persion.hobby=sing,sport,read
persion.family.mother=mum
persion.family.father=baba

3.3 application.yaml配置文件

3.3.1 .yaml文件的优点

相对于传统的基于键值对的属性文件(如application.properties),使用YAML格式的配置文件更加易读和易写,具有以下特点:

  1. 结构清晰:YAML使用缩进和层级结构表示数据的关系,使配置文件更具可读性和可维护性。它使用冒号(:)和缩进来标识键值对和层级关系,而不需要像属性文件那样使用等号(=)和点号(.)。

  2. 支持复杂数据结构:YAML支持列表、映射和嵌套结构,可以方便地表示集合、对象和关联关系等复杂数据结构。这使得配置文件的定义更加灵活,可以更好地适应复杂的配置需求。

  3. 无需引号:相对于属性文件中需要使用引号包围值的情况,YAML中大部分字符串值无需使用引号括起来。这使得配置文件看起来更加简洁,减少了引号的干扰。

3.3.2 基本语法

  • 键值对:使用冒号(:)将键和值分隔,并使用缩进表示层级关系。例如:
key: value
  • 层级关系:使用缩进(一般是空格)表示层级关系,子级配置项比父级配置项多两个空格的缩进。例如:
parent:
  child: value
  • 注释:使用井号(#)表示注释,井号后面的内容将被忽略。例如:

# 这是一个注释
key: value
  • 字符串值:大部分字符串值无需使用引号括起来,但如果包含特殊字符、空格或需要保留原样输出,可以使用单引号或双引号将其括起来。例如:

key: value
key2: 'value with spaces'
key3: "value with special characters: !@#$%^&*"
  • 数字、布尔值和null:数字、布尔值(大小写敏感的truefalse)以及空值(null)直接使用对应的字面量表示。例如:

count: 10
flag: true
data: null
  • 列表:使用连字符(-)表示列表项,并在每个项的前面使用相同的缩进。例如:

list:
  - item1
  - item2
  #或者是
 list: [item1, item2]
  • 引用其他属性值:可以使用${}语法引用其他属性的值。例如:

app:
  name: My Application
  greeting: Hello, ${app.name}!
  
  #或者是
  app: {name: My Applicationm,greeting: "Hello,${app.name}!"}

3.3.3 案例演示 

public class Person {
    private int id;
    private String name;
    private List hobbies;
    private Map map;
    private String[] family;
①application.properties文件中配置写法 
#基本数据类型
person.id=10
person.name=lisi
#复杂数据类型
person.hobbies=read,sing,dance
person.map.k1=v1
person.map.k2=v2
person.family=father.mother
②application.yaml文件中配置写法 
#基本数据类型
person:
  id: 10
  name: lisi
#复杂数据类型
  hobbies: [read,sing,dance]
  map:
    k1: v1
    k2: v2
  family:
    - father
    - mother

四、Spring Boot和数据库操作 

4.1 MySQL安装教程

https://www.jb51.net/article/242736.htm

注意:安装时需要设置用户名和密码的时候,请设置为:用户名root 密码123456

如何使用Navicat创建数据库和表教程:https://blog.csdn.net/WeiHao0240/article/details/100039403 

4.2 项目分层-为什么要分层?

  • 方便后续代码进行维护扩展;

  • 分层的效果需要让整个团队都接受;

  • 各个层职责边界清晰。

 

4.2 Spring Boot分层

4.2.1 Dao层是什么?

       DAO(Data Access Object) 模型就是写一个类,把访问数据库的代码封装起来,DAO在数据库与业务逻辑(Service)之间。

       Dao是数据访问层,Dao的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求。

       采用DAO模式,建立实体类和数据库表映射(ORM映射)。也就是哪个类对应哪个表,哪个属性对应哪个列。持久层的目的就是,完成对象数据和关系数据的转换。42.2.2 Entity层是什么?

       Entity层,顾名思义就是实体层,放置一个个实体,及其相应的set、get方法。如果想要对数据库进行一些操作(比如说读取)的话,就要先写entity层。

怎么写entity层?
  1. 理解业务需求,分析需要从数据库中读取哪些字段;

  2. 根据这些字段写对应属性,写完后[自动生成get、set方法]。(这里我用的是IntelliJ IDEA ,快捷键Alt+Insert,然后就有Getter和Setter方法)

4.2.2 Service层是什么?

        Service被称作业务逻辑层。顾名思义,它处理逻辑上的业务,而不去考虑具体的实现。

        至于为什么service层要使用接口来定义有以下几点好处:

        在java中接口是多继承的,而类是单继承的,如果你需要一个类实现多个service,你用接口可以实现,用类定义service就没那么灵活。

        要提供不同的数据库的服务时,我们只需要面对接口用不同的类实现即可,而不用重复地定义类。

4.2.3 Servlet层是什么?

        Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。

Servlet实现过程:
  1. 客户端发送请求至服务器端;

  2. 服务器将请求信息发送至 Servlet;

  3. Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;

  4. 服务器将响应返回给客户端。

Servlet可以完成以下任务:
  1. 动态生成HTML文档。

  2. 将请求转发给Servlet组件。

  3. 读取客户端的Cookie,以及向客户端写入Cookie。

  4. 访问服务器的资源,如数据库、 XML、文件对象等。

Servlet的特点:
  1. Servlet对象,由Servlet容器(Tomcat)创建。

  2. Servlet是一个接口:位于javax.servlet包中。

  3. service方法用于接收用户的请求并返回响应。

  4. 用户访问时多次被执行(可以统计网站的访问量)。

 

 以上就是现学习所归纳的一些笔记,后续可能会把笔记补完。

谢谢!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值