Spring框架是由于软件开发的复杂性而创建的,轻量级的控制反转(IOC)和面向切面编程的容器。
简化开发的几种策略:
随着Spring不断的发展,涉及的领域越来越多,项目整合开发需要配合各种各样的文件,逐渐使用复杂化,违背了最初的理念,甚至人称配置地狱。Spring Boot正是在这样的一个背景下被抽象出来的开发框架,目的为了让大家更容易的使用Spring、更容易的集成各种常用的中间件。
例如 spring-boot-starter-redis、spring-boot-starter-data-mongodb 和 spring-boot-starter-data-elasticsearch 等。这些依赖模块为 Spring Boot 应用提供了大量的自动配置
为所有Spring开发者更快的搭建和开发
独立运行的 Spring 项目,Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令“ java –jar xx.jar” 即可运行。
开箱即用,提供各种默认配置来简化项目配置
内嵌式servlet容器简化Web项目,Spring Boot 使用嵌入式的Servlet容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 WAR 包 。
没有冗余代码生成和XML配置的要求,不需要任何xml配置即可实现 Spring 的所有配置。
自带应用监控
提供starter简化Maven配置,提供了一系列的“starter”项目对象模型(POMS)来简化 Maven 配置
Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。

必须将web依赖勾选上,否则没有内嵌tomcat


在程序入口类SpringbootdemoApplication同级建业务包,才会被扫描到
pom.xml文件介绍:
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.7.0
com.example
springbootdemo
0.0.1-SNAPSHOT
springbootdemo
Demo project for Spring Boot
12
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-mail
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-maven-plugin
- 项目元数据信息:创建时候输入的Project Metadata部分,也就是Maven项目的基本元素,包括:groupld、artifactld、version、name、description等
- parent:继承spring-boot-starter-parent的依赖管理,控制版本与打包等内容
- dependencies:项目具体依赖,这里包含了spring-boot-starter-web用于实现HTTP接口(该依赖中包含了Spring MVC),官网对它的描述是:使用Spring MVC构建Web(包括RESTful)应用程序的入门者,使用Tomcat作为默认嵌入式容器。spring-boot-starter-test用于编写单元测试的依赖包。更多功能模块的使用我们将在后面逐步展开。
- build:构建配置部分。默认使用了spring-boot-maven-plugin,配合spring-boot-starter-parent就可以把Spring Boot应用打包成JAR来直接运行。
//自动装配
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "hello";
}
}
//本身为一个spring组件
//程序主入口
@SpringBootApplication
public class SpringbootdemoApplication {
//SpringApplication
public static void main(String[] args) {
SpringApplication.run(SpringbootdemoApplication.class, args);
}
}
2022-07-27 23:12:55.533 INFO 5624 --- [ main] c.e.s.SpringbootdemoApplication : No active profile set, falling back to 1 default profile: "default"
2022-07-27 23:12:56.112 INFO 5624 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2022-07-27 23:12:56.119 INFO 5624 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2022-07-27 23:12:56.119 INFO 5624 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.63]
2022-07-27 23:12:56.198 INFO 5624 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2022-07-27 23:12:56.198 INFO 5624 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 640 ms
2022-07-27 23:12:56.419 INFO 5624 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2022-07-27 23:12:56.426 INFO 5624 --- [ main] c.e.s.SpringbootdemoApplication : Started SpringbootdemoApplication in 1.128 seconds (JVM running for 1.66)
2022-07-27 23:13:04.799 INFO 5624 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-07-27 23:13:04.799 INFO 5624 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2022-07-27 23:13:04.800 INFO 5624 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EY6oBBPE-1660477789697)(../typora-user-images/image-20220727233849385.png)]](https://1000bd.com/contentImg/2022/08/17/051323084.png)
#更改项目端口号
server.port=8081