您的位置:

SpringBoot框架介绍

一、SpringBoot是什么框架

SpringBoot是一个开源的JavaEE快速开发框架,它基于Spring框架,通过各种默认设置简化了Spring应用程序的初始搭建,使JavaEE开发变得更加高效、快捷,同时SpringBoot使得Java应用程序的部署变得非常容易,开发者不需要关注底层的应用服务器、servlet容器等应用程序部署相关的细节。

SpringBoot极大地简化了Java Web开发,对于初学者和开发速度要求较高的开发团队,使用SpringBoot可以省去大量时间,减少大量不必要的配置,也使得开发团队更加专注于业务代码的编写。

二、SpringBoot框架优势

1、简化配置


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

SpringBoot的默认设置和启动器帮助您轻松快捷地开始项目开发。您无需采用传统的Spring XML配置文件方式,SpringBoot提供了自动配置,可以根据项目中引入的依赖自动加载相应的配置,无需进行任何设置。

2、内嵌Web容器


@Bean
public EmbeddedServletContainerFactory servletContainer() {
  TomcatEmbeddedServletContainerFactory factory = 
                new TomcatEmbeddedServletContainerFactory();
  factory.setPort(8080);
  return factory;
}

如果你使用SpringBoot开发Web应用,SpringBoot提供了内嵌的Tomcat、Jetty等Servlet容器,不需要安装和配置外部Servlet容器,这样可以简化部署流程,减少了对外部容器的依赖。您的应用程序甚至可以作为一个独立的应用来运行(Jar包或War包),这样您可以将应用程序部署在云平台上,如Pivotal's Cloud Foundry、Heroku等。

3、自动配置


spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root

在SpringBoot中,当引入依赖的时候就能自动配置,在应用创建的时候,SpringBoot会面向Classpath中的jar,查询需要的库,根据类路径中的内容来推断您想如何配置Spring。同时,SpringBoot也提供properties文件和YAML文件作为配置文件。

三、SpringBoot和SpringMVC比较

SpringMVC和SpringBoot都是基于Spring框架的,都是Java Web开发框架。但是两者的区别在于:SpringMVC是基于技术层面的,需要开发者自行配置,而SpringBoot是基于约定大于配置的理念,SpringBoot通过默认配置文件来自动化和简化很多配置工作,这使得开发者不需要关注底层技术细节,只需要专注于业务编码。

四、SpringBoot和BS架构

SpringBoot并不局限于BS架构,它同样适用于CS(Client-Server)架构。BS架构指的是Browser-Server(浏览器-服务器)架构,即前端、交互部分在浏览器上实现,而后台数据处理则在Server端实现。

SpringBoot可以与前端框架如Vue、React、AngularJS等配合,让前端和后台开发更加协同和简便。

五、SpringBoot常用注解

1、@SpringBootApplication


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

@SpringBootApplication是一个组合注解,用于标注SpringBoot应用程序主类。它包含了@ComponentScan、@EnableAutoConfiguration和@Configuration三个注解,这三个注解分别完成的是组件扫描、自动装配和配置。

2、@RestController


@RestController
@RequestMapping("/user")
public class UserController {
  @GetMapping("/list")
  public List<User> getUserList() {
    // TODO
  }
}

@RestController注解用于标注Controller层的类,它通过HTTP协议响应数据。不能够使用@Controller注解,因为这个注解不返回数据。

3、@RequestMapping


@RestController
@RequestMapping("/user")
public class UserController {
  @GetMapping("/list")
  public List<User> getUserList() {
    // TODO
  }
}

@RequestMapping注解用于映射请求的URL和处理方法。通过@RequestMapping注释,使得可以将多个请求映射到同一处理方法中。

六、SpringBoot怎么用

1、创建SpringBoot项目

使用Spring Initializr或者手动创建一个SpringBoot项目。

2、配置pom.xml

在pom.xml中引入所需要的依赖,SpringBoot建议使用"Starter POMs",这样可以省去大量添加依赖的工作。


<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

3、创建Controller

创建Controller层的类,处理HTTP请求。


@RestController
@RequestMapping("/user")
public class UserController {
  @GetMapping("/list")
  public List<User> getUserList() {
    // TODO
  }
}

4、启动应用程序

运行主类的main()方法。

七、SpringBoot属于SSM吗

SpringBoot是基于Spring框架的,SSM(Spring+SpringMVC+Mybatis)也是基于Spring框架的。但是SpringBoot和SSM的设计理念不同,SpringBoot更加注重自动化配置,而SSM更加注重框架集成和配置文件的编写。因此,SpringBoot和SSM可以说是同属于一家之言,但是并不是直接相互包含的关系。

八、SpringBoot面试题

1、SpringBoot如何实现自动配置?

在SpringBoot中,当引入依赖的时候就能自动配置,在应用创建的时候,SpringBoot会面向Classpath中的jar,查询需要的库,根据类路径中的内容来推断您想如何配置Spring。同时,SpringBoot也提供properties文件和YAML文件作为配置文件。

2、SpringBoot和SpringMVC有什么区别?

SpringMVC和SpringBoot都是基于Spring框架的,但是两者的区别在于:SpringMVC是基于技术层面的,需要开发者自行配置,而SpringBoot是基于约定大于配置的理念,SpringBoot通过默认配置文件来自动化和简化很多配置工作,这使得开发者不需要关注底层技术细节,只需要专注于业务编码。

3、SpringBoot的默认启动器都有哪些?

SpringBoot的默认启动器有spring-boot-starter-web、spring-boot-starter-data-jpa、spring-boot-starter-data-redis、spring-boot-starter-actuator等,每个starter都提供了一组默认依赖和配置,可以快速启动开发各种不同的应用。

4、SpringBoot如何设置数据源?

在application.properties或者application.yml中设置数据源、密码等信息,如:


spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root

九、总结

SpringBoot是一个开源的JavaEE快速开发框架,其具有简化配置、内嵌Web容器、自动配置、与前端框架兼容等优势。SpringBoot与BS架构、SSM框架等存在关联,但是并不是直接相互包含的关系。

要开发SpringBoot应用,只需通过Spring Initializr创建项目,然后配置pom.xml文件,创建Controller层的类,最后启动应用程序即可。在使用SpringBoot过程中,需要掌握一些常用的注解,如@RestController、@RequestMapping等。

在面试中,可能会被问到SpringBoot如何实现自动配置、SpringBoot和SpringMVC有什么区别、SpringBoot的默认启动器和数据源设置等问题。