廖雪峰java-Spring Boot开发 1

廖雪峰java-Spring Boot开发 1

1
2
3
Spring Boot是一个基于Spring的套件,它帮我们预组装了Spring的一系列组件,以便以尽可能少的代码和配置来开发基于Spring的Java应用程序。

Spring Boot和Spring的关系就是整车和零部件的关系

第一个Spring Boot应用

image-20240424235755339

1
spring结构下面

application.yml

使用环境变量

logback-spring.xml

static、templates

1
static是静态文件目录,templates是模板文件目录,注意它们不再存放在src/main/webapp下,而是直接放到src/main/resources这个classpath目录,因为在Spring Boot中已经不需要专门的webapp目录了。

代码结构

image-20240430165730224

1
2
3
4
5
6
7
8
在存放源码的src/main/java目录中,Spring Boot对Java包的层级结构有一个要求。注意到我们的根package是com.itranswarp.learnjava,下面还有entity、service、web等子package。Spring Boot要求main()方法所在的启动类必须放到根package下,命名不做要求,这里我们以Application.java命名

@SpringBootApplication
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}

pom

1
2
3
4
5
6
7
8
9
spring-boot-starter-parent继承

spring-boot-starter-web

spring-boot-starter-jdbc

pebble-spring-boot-starter

hsqldb

使用开发者工具

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>

打包Spring Boot应用

预热

使用Actuator

使用Profiles

使用Conditional

集成第三方组件

集成Open API

1
使用springdoc让其自动创建API文档非常容易,引入依赖后无需任何配置即可访问交互式API文档。

访问Redis

集成Artemis

1
ActiveMQ Artemis,它实现了JMS的消息服务协议

集成RabbitMQ

AMQP

1
AMQP是一种使用广泛的独立于语言的消息协议,它的全称是Advanced Message Queuing Protocol,即高级消息队列协议,它定义了一种二进制格式的消息流,任何编程语言都可以实现该协议。实际上,Artemis也支持AMQP,但实际应用最广泛的AMQP服务器是使用Erlang编写的RabbitMQ。

Exchange

1
但是AMQP协议比JMS要复杂一点,它只有Queue,没有Topic,并且引入了Exchange的概念。当Producer想要发送消息的时候,它将消息发送给Exchange,由Exchange将消息根据各种规则投递到一个或多个Queue

集成Kafka

1
哥没有实现任何标准,哥自己就是标准  —— Kafka