全面探索SpringBoot

1. Spring Boot 简介

什么是Spring Boot

Spring Boot是由Pivotal团队提供的全新框架,目的是简化Spring应用的初始搭建以及开发过程。Spring Boot基于Spring框架,通过约定大于配置的原则,使得开发者可以快速搭建基于Spring的应用。就是个脚手架。

Spring Boot的优势
  • 快速启动:通过自动配置和预置的默认设置,开发者可以快速启动一个Spring应用。
  • 简化配置:提供了一系列的注解,减少了XML配置。
  • 独立运行:可以将应用打包为一个可执行的JAR文件,独立运行,不依赖外部的Servlet容器。
  • 强大的社区支持:Spring Boot有着强大的社区支持和丰富的文档。
与传统Spring框架的区别

SpringBoot可以更好的去搭建Spring框架,传统的Spring框架需要大量的配置,尤其是XML配置。而Spring Boot通过自动配置,大大简化了配置过程,使得开发更加简洁和高效。

2. Spring Boot 的核心注解

@SpringBootApplication

@SpringBootApplication是一个复合注解,包含了@Configuration@EnableAutoConfiguration@ComponentScan。这是启动类的核心注解,表示这是一个Spring Boot应用。

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

@RestController@Controller@ResponseBody的组合注解,表示该类是一个控制器,并且所有方法返回的都是JSON格式数据。

@RestController
public class MyController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}
@RequestMapping 和 @GetMapping

@RequestMapping用于映射HTTP请求到处理方法上。@GetMapping是其快捷方式,只处理GET请求。

@RestController
public class MyController {
    @RequestMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }

    @GetMapping("/hello")
    public String helloGet() {
        return "Hello, GET!";
    }
}
@Autowired

@Autowired用于自动注入依赖。

@Service
public class MyService {
    public String serviceMethod() {
        return "Service Method";
    }
}

@RestController
public class MyController {
    @Autowired
    private MyService myService;

    @GetMapping("/service")
    public String service() {
        return myService.serviceMethod();
    }
}
其他常用注解
  • @Component:通用组件注解。
  • @Service:服务层注解。
  • @Repository:持久层注解。
  • @Configuration:配置类注解。

3. Spring Boot 快速入门

创建Spring Boot项目

可以使用Spring Initializr快速生成Spring Boot项目。可以选择需要的依赖,例如Spring Web、Spring Data JPA等。

目录结构介绍

典型的Spring Boot项目结构如下:

src
 ├── main
 │   ├── java
 │   │   └── com.example.demo
 │   │       ├── DemoApplication.java
 │   │       ├── controller
 │   │       ├── service
 │   │       └── repository
 │   └── resources
 │       ├── application.properties
 │       └── static
 └── test
配置文件(application.properties 和 application.yml)

Spring Boot提供了多种配置方式,application.propertiesapplication.yml是最常见的配置文件。

# application.properties
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
# application.yml
server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: 
编写第一个Spring Boot应用

在Spring Boot应用中,可以通过简单的注解和少量的配置实现一个完整的功能模块。

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

@RestController
@RequestMapping("/api")
public class DemoController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

4.SpringBoot自动装配原理

springboot启动时,是依靠启动类的main方法来进行启动的,而main方法中执行的是SpringApplication.run()方法,而SpringApplication.run()方法中会创建spring的容器,并且刷新容器。而在刷新容器的时候就会去解析启动类,然后就会去解析启动类上的@SpringBootApplication注解,而这个注解是个复合注解,这个注解中有一个@EnableAutoConfiguration注解,这个注解就是开启自动配置,这个注解中又有@Import注解引入了一个AutoConfigurationImportSelector这个类,这个类会进过一些核心方法,然后去扫描我们所有jar包下的META-INF下的spring.factories文件,而从这个配置文件中取找key为EnableAutoConfiguration类的全路径的值下面的所有配置都加载,这些配置里面都是有条件注解的,然后这些条件注解会根据你当前的项目依赖的pom以及是否配置了符合这些条件注解的配置来进行装载的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值