暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Springboot入门以及基础概念

IT那活儿 2022-12-10
794
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

简 介

Spring Boot是一个构建在Spring框架顶部的项目。它提供了一种简便,快捷的方式来设置,配置和运行基于Web的简单应用程序。

它是一个Spring模块,提供了 RAD(快速应用程序开发)功能。它用于创建独立的基于Spring的应用程序,因为它需要最少的Spring配置,因此可以运行。
简而言之,Spring Boot是 Spring Framework 和 嵌入式服务器的组合。

在Spring Boot不需要XML配置(部署描述符)。它使用约定优于配置软件设计范例,可以减少开发人员的工作量。


SpringBoot体系结构

SpringBoot遵循一个分层的体系结构,其中每一层都与它的直接上下层进行通讯。SpringBoot中有四层,分别为展示层、业务层、持久层、数据库层。
  • 展示层:表示层负责处理HTTP请求,将JSON参数转换为对象,并对请求进行身份验证并将其传输到业务层。简而言之,它由视图即前端部分组成。
  • 业务层:业务层处理所有业务逻辑 >。它由服务类组成,并使用数据访问层提供的服务。它还执行授权和验证。
  • 持久层:持久层包含所有存储逻辑,并将业务对象与数据库行进行相互转换。
  • 数据库层:在数据库层中, CRUD (创建,检索,更新等)。


SpringBoot基础目录结构

ProjectName
+- src
+- main
+- java
+- resources
| +- static
|
  +- templates
| application.properties
+- test
+- java
|
 pom.xml

Spring Boot的基础结构共三个文件(具体路径根据用户生成项目时填写的Group所有差异):

  • src/main/java下的程序入口ProjectApplication;
  • src/main/resources下的配置文件application.properties;
  • src/test/下的测试入口ProjectApplicationTests;
  • Pom.xml 是Maven的基本工程文件,包含了项目的基本信息,以及声明项目依赖;

生成的ProjectApplication和ProjectApplicationTests类都可以直接运行来启动当前创建的项目,如果项目未创建任何数据访问或Web模块,程序会在加载完Spring之后结束运行。


创建springboot应用程序

如图所示:
进入项目创建页面,选择spring Initializr,Server URL:https//start.spring.io,根据创建的项目点击确认。
创建web项目,需要选择WEB相关的依赖:
在Idea中运行创建的项目:
浏览器访问端口,可以看到服务应用启动了。


Springboot配置

5.1 默认配置文件

Spring Boot的默认配置文件位置为:src/main/resources/application.properties。
关于Spring Boot应用的配置内容都可以集中在该文件中了,根据pom.xml中引入的不同Starter模块,可以在这里定义诸如:容器端口名、数据库链接信息、日志级别等各种配置信息。
如下所示:
# web服务访问端口
server.port=8090
# 数据库连接
spring.datasource.url=jdbc:mysql://192.168.XX.2:3306/xxx
# 应用名称
Spring.application.name=hello

Spring Boot的配置文件除了可以使用传统的properties文件之外,还支持现在被广泛推荐使用的YAML文件。
如下所示:
server:
  port: 8090
  
spring:
  datasource:
    url: jdbc:mysql://192.168.XX.2:3306/xxx
  application:
    name: hello

5.2 外部配置

在springboot的jar包程序运行时,可直接通过命令行修改web服务参数,如:
# java -jar xx.jar --server.port=8090
命令行中的双减号--就是对application.propertyes中属性值进行赋值的标识,所以java -jar xx.jar --server.port=8090等价于在application.propertyes中添加属性server.port=8090

5.3 配置优先级

application.properties和application.yml文件可以放在四个位置,按照优先级排序如下所示:

  • 外置,在相对于应用程序运行目录的/congfig子目录里。
  • 外置,在应用程序运行的目录里。
  • 内置,在config包内。
  • 内置,在Classpath根目录。
也就是说jar包的springboot程序运行的目录下config/application.properties会覆盖./application.properties中相同属性的配置。
springboot/
├── application.properties
├── config
│ └── application.properties
└── HelloWorld-0.0.1-SNAPSHOT.jar

src/main/resources/config下application.properties覆盖src/main/resources下application.properties中相同的属性,如图:

此外,如果在相同优先级位置同时有application.properties和application.yml,那么application.properties里的属性里面的属性就会覆盖application.yml。


多环境配置

6.1 配置命名

在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:

  • application-dev.properties:开发环境
  • application-test.properties:测试环境
  • application-prod.properties:生产环境

6.2 配置加载

  • 执行java -jar xxx.jar,也就是默认的开发环境(dev)
  • 执行java -jar xxx.jar --spring.profiles.active=test,也就是测试环境的配置(test)
  • 执行java -jar xxx.jar --spring.profiles.active=prod,也就是生产环境的配置(prod)


项目打包运行

双击package,idea自动打包并测试项目文件。打包完成可以在右侧看到项目名称的jar包文件。
等待打包,package打包完成后,target中会生成一个与项目名称相同的jar包文件。
CMD运行jar包可以看到服务可以正常运行。根据输出的信息,可以看到Springboot 版本:v2.7.5
执行命令:java -jar HelloWorld-0.0.1-SNAPSHOT.jar


本文作者:黎 俊(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论