第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)。这使得在开发业务代码时不需要过度关注框架的配置,只需要关注逻辑即可。


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号