文章目录
前言
SpringBoot发展历程
最初,Spring框架的使用需要大量的XML配置,这使得开发过程复杂且难以维护。开发者需要通过XML文件来定义应用的各个组件和它们之间的关系。
随着Spring 4.x的发布,框架逐渐引入了基于注解的配置方式。开发者可以通过Java类中的注解来代替XML配置,从而简化了配置过程。这一变化使得开发者能够更直观地理解应用的结构,并减少了配置文件的数量
为了解决传统Spring开发中的复杂性,Pivotal团队在2014年推出了Spring Boot。Spring Boot旨在简化基于Spring的应用开发,使得开发者可以更快速地构建和部署应用。它提供了约定优于配置的原则,减少了繁琐的配置步骤,同时集成了微服务架构的理念。
SpringBoot前置准备
Java语言基础,IDEA编辑器、
Spring Boot 2.x版本支持JDK 8及以上版本
Spring Boot 3.x版本要求使用JDK 17或更高版本
SpringBoot特点
SpringBoot官网有具体介绍
- 创建独立的 Spring 应用程序
- 直接嵌入 Tomcat、Jetty 或 Undertow(无需部署 WAR 文)
- 提供丰富的 “starter” 依赖项以简化您的构建配置
- 尽可能自动配置 Spring 和第三方库
- 提供生产就绪型功能,例如指标、运行状况检查和外部化配置
- 不会生成额外检查,也不需要 XML 配置
SpringBoot项目初始化
IDEA编辑器创建项目,默认从 https://start.spring.io/上拉取代码,可能会失败,所以更换成阿里代理
项目启动
找到主类,点击绿色按钮启动
启动日志内容解析,这些日志信息记录了Spring Boot应用从启动到Tomcat和Spring上下文初始化的整个过程。
2024-10-27 20:56:54.037 INFO 54700 --- [ main] com.example.demo.Demo1Application : Starting Demo1Application using Java 11.0.13 on bogon with PID 54700 (/Users/one/Downloads/java后端学习/demo1/target/classes started by one in /Users/one/Downloads/java后端学习/demo1)
//- 应用程序 `Demo1Application` 正在启动,使用 Java 11.0.13,进程ID为54700。
2024-10-27 20:56:54.045 INFO 54700 --- [ main] com.example.demo.Demo1Application : No active profile set, falling back to 1 default profile: "default"
//- 没有设置活动的配置文件,使用默认配置文件。
2024-10-27 20:56:56.032 INFO 54700 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)// 内嵌的Tomcat服务器在8080端口初始化。
-2024-10-27 20:56:56.056 INFO 54700 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]//- 开始启动Tomcat服务。
2024-10-27 20:56:56.056 INFO 54700 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.68]
//- 启动Servlet引擎,使用的是Apache Tomcat 9.0.68。
2024-10-27 20:56:56.272 INFO 54700 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
//始化Spring的Web应用上下文。
2024-10-27 20:56:56.272 INFO 54700 --- [ main]
w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2092 ms
// 根Web应用上下文的初始化完成,耗时2092毫秒。
2024-10-27 20:56:56.936 INFO 54700 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]
//- 添加欢迎页面,通常是`static/index.html`。
2024-10-27 20:56:57.159 INFO 54700 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
//- Tomcat在8080端口成功启动,应用的上下文路径为空。
2024-10-27 20:56:57.178 INFO 54700 --- [ main]
com.example.demo.Demo1Application : Started Demo1Application in 4.643 seconds (JVM running for 6.993)
//- 应用`Demo1Application`启动完成,总耗时4.643秒。
2024-10-27 20:57:19.742 INFO 54700 --- [nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
// 开始初始化Spring的`DispatcherServlet`。
2024-10-27 20:57:19.744 INFO 54700 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
//`DispatcherServlet`的初始化开始
2024-10-27 20:57:19.758 INFO 54700 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 14 ms
//- `DispatcherServlet`的初始化完成,耗时14毫秒。
Springboot的核心概念IOC
概念介绍
IoC(Inversion of Control,控制反转)是一种对象管理技术,通常被称为IoC容器。它是一项管理对象生成、获取和管理的技术,Java作为一门面向对象的语言,对象的管理就至关重要。在传统的Java编程中,对象一般通过new构建,不方便管理,而Springboot通过注解来构建对象。
Bean对象
Bean是由Spring IoC容器实例化、组装和管理的对象。容器负责其生命周期,包括创建、初始化和销毁。
Bean的定义可以通过XML配置、Java注解或Java配置类来实现,提供了多种灵活的配置方式。
Spring支持依赖注入(DI),可以在Bean中自动注入其依赖的其他Bean,从而降低了对象之间的耦合度。
通过注解扫描包
在主类上添加@ComponentScan包扫描注解,注意:该注解会扫描述的类所在包和其子包的注解springboot的主类SpringBootApplication集成了这个包
例子
首先,使用@Configuration
注解定义一个配置类,并通过@Bean
注解创建Bean。
@Configuration
public class AppConfig {
@Bean
public UserService userService() {
return new UserService();
}
@Bean
public UserRepository userRepository() {
return new UserRepository();
}
}
接下来,在需要使用这些Bean的地方,通过@Autowired
注解进行依赖注入
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public void performAction() {
// 使用 userRepository }
}
配置文件
配置文件是管理应用设置的重要部分。通常使用application.properties
或application.yml
来定义各种配置项,配置项都是做了默认配置的比如端口号,日志。
application.yml
# 设置端口号
server:
port: 9999
application.properties
# 设置端口号
server.port=8081
文章到这里就结束了,希望对你有所帮助