第4章 Spring Boot基础
第4章 Spring Boot基础
4.1 Spring Boot项目结构
4.1.1 了解Spring Boot项目结构
src/main/java
:入口(启动)类及程序的开发目录。在这个目录下进行业务开发、创建实体层、控制器层、数据连接层等。src/main/resources
:资源文件目录,主要用于存放静态文件和配置文件。- static:用于存放静态资源,如CSS文件、JavaScript文件、图片等
- templates:用于存放模板文件
- application.properties:用于配置项目运行所需的配置数据。如果用YAML方式管理配置,则YAML文件也可以放在这个目录中
src/test/java
:测试程序所在的目录
pom.xml
在创建工程时,我们勾选了web和lombok,所以SpringBoot会在pom.xml文件中加入以下依赖。
- 核心模块spring-boot-starter-web:Spring的web模块
- 测试模块spring-boot-starter-test:包括Junit、Hamcrest和Mockito,用于测试。
4.1.2 了解Spring Boot的入口类
在创建Spring Boot项目时,会自动创建一个用于启动的,名为项目名+Application
的入口类,它是项目的入口。
@SpringBootApplication:标注这个Spring Boot项目的入口类。
在入口类中有一个"main"方法,其中使用了SpringApplication的静态"run"方法,并将"Demo01Application"类和"main"方法的参数"args"传递了进去,以启动"Demo01Application"类。
4.1.3 了解Spring Boot的自动配置
Spring Boot会根据配置的依赖信息进行自动配置,从而减轻开发者搭建环境和配置的负担。如果在项目中依赖了spring-boot-starter-web,则Spring Boot会自动配置Web环境。
Spring Boot自动配置是通过注解@EnableAutoConfiguration
来实现的,具有非侵入性。
如果不需要某些自动配置,则可以通过注解@EnableAutoConfiguration的"exclude或excludeName"属性来指定,或在配置文件(application.properties或application.yml)中指定"spring.autoconfigure.exclude"的值。
4.1.4 了解Spring Boot的热部署
Spring Boot热部署是为了更好地支持调试,在项目进行修改之后不需要耗费时间重启
,在应用程序正运行的情况下即可实时生效
,以节约时间和操作。
要实现热部署,则需要添加下方的热部署依赖:
<!--热部署依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 可以防止将devtools依赖传递到其他模块中 -->
</dependency>
双Shitf搜索Registry
启动热部署
4.1.5 定制Banner启动动画
- 自定义Banner
如果想在Spring Boot应用程序启动时显示自定义信息,则可以通过定制个性化启动的横幅画面(Banner)来实现:在resources资源目录下创建banner.txt
文件,然后在其中输入想显示的文字。
还可以在banner.txt中加入一些属性信息,比如Spring Boot的版本信息、应用程序的名称等。
# springboot的版本号
${spring-boot.version}
# springboot的版本号前面加v后上括号
${spring-boot.formatted-version}
# MANIFEST.MF文件中的版本号
${application.version}
# MANIFEST.MF文件的版本号前面加v后上括号
${application.formatted-version}
# MANIFEST.MF文件中的程序名称
${application.title}
# ANSI样色/样式等
${Ansi.NAME} (or ${AnsiColor.NAME}, ${AnsiBackground.NAME}, ${AnsiStyle.NAME})
在application.xml(或application.yml)中添加配置:
spring.banner.charset=UTF-8
spring.banner.location=classpath:banner.txt
classpath目录就是resources目录
一些设计Banner的网站:http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type Something
- 关闭banner
如果不喜欢显示这种信息,想要关闭它,可以在配置文件中添加配置:
spring.main.banner-mode=off
4.2 Spring Boot的常用注解
未来的趋势是"约定大于配置"
,代码的封装会更严密。开发人员会将更多的精力放在代码的整体优化和业务逻辑上,所以注解式编程会被更加广泛地使用。
4.2.1 什么是注解式编程
注解(annotations)用来定义一个类、属性或一些方法,以便程序能被编译处理。它相当于一个说明文件,告诉应用程序某个被注解的类或属性是什么,要怎么处理。注解可以用于标注包、类、方法和变量等。
4.2.2 Spring Boot的常用注解
- 使用在类名上的注解
- 使用在方法上的注解
- 其他注解
4.3 Spring Boot的配置文件
Spring Boot支持Properties
和YAML
两种配置方式。
Properties的优先级高于YAML。
YAML文件的好处是——它采用的是树状结构,一目了然。
注意:
- 原来以"."分隔的key会变成树状结构。
- 在key后的冒号一定要跟一个空格
- YAML格式不支持用注解@PropertySource导入配置
4.4 Spring Boot的Starter
Spring Boot为了简化配置,提供了非常多的Starter。它先打包好与常用模块相关的所有JAR包,并完成自动配置,然后组装成Starter(如把Web相关的Spring MVC、容器等打包好后组装成Spring-boot-starter-web)。这使得在开发业务代码时不需要过度关注框架的配置,只需要关注逻辑即可。
本文作者:Ac_c0mpany丶
本文链接:https://www.cnblogs.com/keyongkang/p/16898650.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步