文章目录
- SpringBoot简介
- 启动类
- 配置外部容器
- yml 配置文件
- 打包发布
SpringBoot简介
SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是帮助开发者快速创建独立的、生产级别的基于 Spring 框架的应用程序。它通过内嵌服务器(如 Tomcat、Jetty 或 Undertow)、零配置和自动配置等特性简化了 Spring 应用的初始搭建以及开发过程中的常见任务。
约定大于配置
创建 SpringBoot 项目(IDEA2023)
这里用阿里云的地址创建 SpringBoot 工程。阿里提供的地址更符合国内开发者的使用习惯,里面有一些 SpringBoot 官网上没有给出的坐标。
启动类
在Spring Boot应用程序中,启动类是应用程序的入口点。它通常包含了一个main
方法,该方法调用SpringApplication.run()
来启动应用。启动类注解如下:
@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}
@SpringBootApplication 包含 @Configuration,@EnableAutoConfiguration 和 @ComponentScan
@Configuration
: 标记类作为Spring的bean定义的来源。@EnableAutoConfiguration
: 启用Spring Boot的自动配置机制,根据类路径中的依赖自动配置Spring应用。@ComponentScan
: 自动扫描并注册带有@Component注解的类为Spring的bean。默认情况下,它会扫描启动类所在包及其子包下的组件。
配置外部容器
配置 Spring Boot 应用程序以使用外部 Servlet 容器,而不是默认嵌入式的Tomcat。
1、修改pom.xml
:移除内嵌的Tomcat依赖并添加javax.servlet-api
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 移除tomcat --><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions>
</dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope>
</dependency>
确保该外部容器的版本与
javax.servlet-api
的版本兼容
2、修改启动类:让启动类继承自SpringBootServletInitializer
,并且覆盖configure
方法
@SpringBootApplication
public class SpringbootCSApplication extends SpringBootServletInitializer {// 覆盖configure方法@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(SpringbootCSApplication.class);}public static void main(String[] args) {SpringApplication.run(SpringbootCSApplication.class, args);}
}
3、配置构建工具以创建WAR文件
- 打开项目的设置(File -> Project Structure… 或 Ctrl+Alt+Shift+S)导航到Artifacts部分
- 点击加号(+)选择 “Web Application: Exploded”
- 从模块列表中选择 Spring Boot 应用作为来源,完成后点击OK保存设置
yml 配置文件
application.yml
配置文件:包含 Spring Boot 应用程序所需的多个重要设置,包括服务器端口、数据库连接、静态资源路径和MyBatis配置。
server:port: 8888 # 设置应用运行的HTTP端口号# 数据库连接
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=UTF-8&useSSL=falseusername: rootpassword: rootmybatis:type-aliases-package: com.hz.springboot01.pojomapper-locations: classpath:mapper/*.xml # 指定Mapper XML文件的位置configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
yaml 语法格式
yaml 具体的语法格式要求如下:
- 大小写敏感
- 属性层级关系使用多行描述,每行结尾使用冒号结束
- 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
- 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
- #号 表示注释
不同环境配置
SpringBoot 项目中,不同的环境(如开发、测试、生产)下需要不同的配置。
application.yml
:默认配置文件,当没有指定其他配置文件时,SpringBoot 会加载这个文件。application-dev.yml
:开发环境的配置文件。application-test.yml
:测试环境的配置文件。
# 指定开发环境配置文件
spring:profiles:active: dev
静态资源配置
在 pages 文件夹下放入 index.html 文件,项目结构如下:
开发环境配置文件 application-dev.yml
:
# 开发配置
server:port: 8080spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=UTF-8&useSSL=falseusername: rootpassword: rootmvc:static-path-pattern: /pages/**web:resources:static-locations: classpath:/pages/
静态资源配置的相关部分:
spring:mvc:static-path-pattern: /pages/**web:resources:static-locations: classpath:/pages/
开发环境的端口号改为了8888,浏览器输入正确的端口,可以访问 html 页面,显示正常。
打包发布
首先在 pom.xml 文件中添加 classifier,这里可以自定义标识。
<classifier>xxx</classifier>
【清理】 ===> 【打包】
出现【BUILD SUCCESS】就是成功了
去到项目所在位置,我这里是:D:\idea_workspaces\springboot01\target
生成的两个 jar 包中,不带标识 xxx
的没有主配置清单,在这里打开终端,输入:java -jar 你的项目名.jar
出现如上内容的时候,证明项目已经运行,此处不需要依赖于 IDEA
去到浏览器,由上图可知,此处我的端口为8888。
输入 localhost:8888
成功进入初始化页面。