Life is a fucking movi|

Ac_c0mpany丶

园龄:3年7个月粉丝:6关注:3

2022-11-17 10:43阅读: 39评论: 0推荐: 0

第4章 Spring Boot基础

第4章 Spring Boot基础

4.1 Spring Boot项目结构

4.1.1 了解Spring Boot项目结构

  1. src/main/java:入口(启动)类及程序的开发目录。在这个目录下进行业务开发、创建实体层、控制器层、数据连接层等。
  2. src/main/resources:资源文件目录,主要用于存放静态文件和配置文件。
    • static:用于存放静态资源,如CSS文件、JavaScript文件、图片等
    • templates:用于存放模板文件
    • application.properties:用于配置项目运行所需的配置数据。如果用YAML方式管理配置,则YAML文件也可以放在这个目录中
  3. 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支持PropertiesYAML两种配置方式。

Properties的优先级高于YAML。

YAML文件的好处是——它采用的是树状结构,一目了然。

注意:

  1. 原来以"."分隔的key会变成树状结构。
  2. 在key后的冒号一定要跟一个空格
  3. 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 中国大陆许可协议进行许可。

posted @   Ac_c0mpany丶  阅读(39)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 You Are My Sunshine REOL
You Are My Sunshine - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Traditional

You are my sunshine

My only sunshine.

You make me happy

When skies are gray.

You'll never know, dear,

How much I love you.

Please don't take my sunshine away

The other night, dear,

When I lay sleeping

I dreamed I held you in my arms.

When I awoke, dear,

I was mistaken

So I hung my head and cried.

You are my sunshine,

My only sunshine.

You make me happy

When skies are gray.

You'll never know, dear,

How much I love you.

Please don't take my sunshine away.

You are my sunshine,

My only sunshine

You make me happy

When skies are gray.

You'll never know, dear

How much I love you

Please don't take my sunshine away

Please don't take my sunshine away.

Please don't take my sunshine away.