Spring Boot基础知识

  1. 什么是 Spring Boot

    • Spring Boot 是一个用于构建独立的、基于 Spring 的生产级应用程序的框架。它简化了 Spring 应用的初始搭建以及开发过程,使得开发者能够快速地创建可以运行的应用程序,而无需进行大量的样板配置。
    • 例如,在传统的 Spring 应用开发中,需要配置大量的 XML 文件或者 Java 配置类来定义各种 Bean,如数据源、事务管理器等。而 Spring Boot 通过自动配置(auto - configuration)功能,根据项目中添加的依赖自动配置这些组件,大大减少了配置的工作量。
  2. 核心特性

    • 自动配置
      • Spring Boot 的自动配置是其核心特性之一。它会根据类路径下的依赖和一些预定义的条件来自动配置 Spring 应用。
      • 比如,当在项目的pom.xml(Maven 项目)或者build.gradle(Gradle 项目)中添加了spring - webmvc依赖,Spring Boot 会自动配置一个 Spring MVC 应用,包括配置DispatcherServlet、视图解析器等组件。这些配置都是基于一系列的条件判断,如是否存在某个特定的类或者接口来触发相应的配置。
    • 起步依赖(Starter Dependencies)
      • Spring Boot 提供了一系列的起步依赖,这些依赖是将一组相关的依赖打包在一起,方便开发者使用。
      • 例如,spring - boot - starter - web包含了构建一个 Web 应用所需要的基本依赖,如 Spring MVC、Tomcat 等。当在项目中添加这个起步依赖后,就可以快速地开始构建 Web 应用,而不需要逐个添加spring - mvctomcat - embed - servlet等依赖。
    • 嵌入式服务器支持
      • Spring Boot 支持嵌入式服务器,如 Tomcat、Jetty 和 Undertow。这些服务器可以直接嵌入到应用程序中,使得应用可以作为一个独立的可执行文件运行。
      • 以 Tomcat 为例,在传统的 Web 应用开发中,需要将应用部署到外部的 Tomcat 服务器中。而在 Spring Boot 中,通过添加spring - boot - starter - web依赖,会自动嵌入 Tomcat 服务器。当启动应用时,Tomcat 会在应用内部启动,监听指定的端口(默认是 8080),处理 HTTP 请求。
  3. 项目结构

    • 典型的 Spring Boot 项目结构包含src/main/javasrc/main/resourcessrc/test/java等目录。
    • src/main/java目录下,通常有一个主应用类(带有@SpringBootApplication注解),它是应用的入口点。例如:

收起

java

复制

   import org.springframework.boot.SpringBootApplication;

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

  • src/main/resources目录中,包含配置文件(如application.propertiesapplication.yml),用于配置应用的各种属性,如服务器端口、数据库连接等。
  • src/test/java目录用于存放单元测试和集成测试的代码。

  1. 配置文件
    • Spring Boot 支持多种配置文件格式,如propertiesyaml
    • application.properties
      • 这是一种传统的配置文件格式,以键值对的形式配置属性。例如,配置服务器端口:server.port = 8080;配置数据库连接:spring.datasource.url=jdbc:mysql://localhost:3306/mydb
    • application.yml
      • 这是一种更具可读性的配置文件格式,使用缩进表示层次结构。例如:

收起

yaml

复制

     server:
       port: 8080
     spring:
       datasource:
         url: jdbc:mysql://localhost:3306/mydb

  • 配置文件中的属性可以通过@Value注解或者Environment接口在 Java 代码中获取和使用。例如:

收起

java

复制

   import org.springframework.beans.factory.annotation.Value;
   import org.springframework.stereotype.Component;

   @Component
   public class MyConfig {
       @Value("${server.port}")
       private int port;

       // 可以在这里使用port变量进行相关操作
   }

  1. 注解
    • @SpringBootApplication
      • 这是一个组合注解,它包含了@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan
      • @SpringBootConfiguration表明这个类是一个配置类,可以用于定义 Bean 等配置操作。@EnableAutoConfiguration开启自动配置功能,@ComponentScan用于扫描组件,默认会扫描当前包及其子包下的@Component@Service@Repository@Controller等注解标注的类。
    • @RestController
      • 用于标注一个类,使其成为一个 RESTful 风格的控制器。它是@Controller@ResponseBody的组合注解,意味着这个类中的方法返回值会直接作为 HTTP 响应的内容,而不是视图名称。例如:

收起

java

复制

   import org.springframework.web.bind.annotation.GetMapping;
   import org.springframework.web.bind.annotation.RestController;

   @RestController
   public class HelloController {
       @GetMapping("/hello")
       public String sayHello() {
           return "Hello, World!";
       }
   }

  • @Service
    • 用于标注服务层的类,表示这是一个业务逻辑组件。例如,一个处理用户业务逻辑的类可以用@Service标注:

收起

java

复制

   import org.springframework.stereotype.Service;

   @Service
   public class UserService {
       // 业务逻辑方法
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值