程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Spring Boot 入门第一天 spring boot简单吗

balukai 2024-12-25 10:09:08 文章精选 127 ℃

1 什么是Spring Boot

JavaEE开发中,“约定大于配置”,即系统,类库,框架应该假定合理的默认值,而非要求提供不必要的配置;而目前Spring或SpringMVC需要进行大量繁琐的配置,鉴于这种情况Spring Boot应运而生。

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。

Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式。
Spring Boot 使用的注解大都来源Spring注解,所以可以让Spring开发者零适应过渡到Spring Boot

以上的这个图比较有意思,即开发者从一个微小的入口就能开启spring的大门

2 Spring Boot的特点

  • 快速创建独立运行的Spring项目以及与主流框架集成
  • 内嵌的Servlet容器,如Tomcat,jetty,应用无需打成WAR包
  • starters自动依赖与版本控制
  • 大量的自动配置,简化开发,也可修改默认值
  • 无需配置XML,无代码生成,开箱即用
  • 准生产环境的运行时应用监控

3 准备开发环境

Java8

idea2021.2.2

maven3.8.3

springboot 2.5.5

3.1maven 设置setting.xml

3.2idea 设置maven

4 开发第一个SpringBoot 应用

需求说明:

在浏览器输入http://localhost:8080/hello 返回"hello spring boot"

4.1 第一步

4.2 第二步

4.3 第三步

执行以上步骤后,idea会自动创建一个项目,简单介绍一下

4.3.1 项目目录信息

4.3.2 项目入口类

4.3.3 pom.xml

4.4 第四步

创建controller

4.5 第五步

启动springboot应用

4.6 第六步

展示效果,在浏览器输入

5 项目打包部署

5.1 pom中已经添加了maven插件

5.2 执行打包

5.3拷贝jar 部署

把以上的jar 拷贝到你想部署的服务器即可。

5.4 执行jar

比如,我们把以上的jar 拷贝到了电脑桌面

执行一下命令即可运行

6 SpringBoot启动原理探究

6.1 pom.xml-- 父项目

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

该父项目中又依赖了,

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.5</version>
</parent>

在spring-boot-dependencies中定义了相当多的jar的依赖管理信息,比如,(篇幅有限,只列出一部分)

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-amqp</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-blueprint</artifactId>
<version>${activemq.version}</version>
</dependency>

这样一来,我们开发的项目中,依赖jar 版本就被springboot的管理了。具体的结构如下

6.2 依赖starter

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

spring-boot-starter: 称作 spring 场景启动器。比如spring-boot-starter-web 该启动器中就包含了web 所需要的jar ,我们只需要依赖spring-boot-starter-web ,相当于就导入web需要依赖的jar

Spring Boot将所有的功能场景都抽取出来,做成对应的starters(启动器),只需要在项目里面引入这些starter

相关场景的所有依赖都会导入进来。

6.3 主程序入口类

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

@SpringBootApplication: 该注解标注到哪个类上,说明这个类是SpringBoot的主配置类,SpringBoot

就应该运行这个类的main方法来启动SpringBoot应用; 该注解是个组合注解,我们按 ctrl点击进入

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {

@SpringBootConfiguration: spring的配置类

@EnableAutoConfiguration :开启spring的自动注解配置

最近发表
标签列表