SpringBoot的开篇 特点 初始化 ioc 配置文件

前言

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官网有具体介绍

  1. 创建独立的 Spring 应用程序
  2. 直接嵌入 Tomcat、Jetty 或 Undertow(无需部署 WAR 文)
  3. 提供丰富的 “starter” 依赖项以简化您的构建配置
  4. 尽可能自动配置 Spring 和第三方库
  5. 提供生产就绪型功能,例如指标、运行状况检查和外部化配置
  6. 不会生成额外检查,也不需要 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.propertiesapplication.yml来定义各种配置项,配置项都是做了默认配置的比如端口号,日志。

application.yml

# 设置端口号
server:
 port: 9999

application.properties

# 设置端口号
server.port=8081

文章到这里就结束了,希望对你有所帮助

猜你喜欢

转载自blog.csdn.net/weixin_63625059/article/details/143277018