SpringBoot学习总结一:SpringBoot入门

前言

以下及未来的SpringBoot总结均为尚硅谷SpringBoot学习总结。

下一篇:配置文件与日志

一、SpringBoot概述

1.1 简介

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

1.2 Spring Boot优点

  1. 快速创建独立运行的Spring项目以及与主流框架集成
  2. 使用嵌入式的Servlet容器,应用无需打成WAR包
  3. starters自动依赖与版本控制
  4. 大量的自动配置,简化开发,也可修改默认值
  5. 无需配置XML,无代码生成,开箱即用
  6. 准生产环境的运行时应用监控
  7. 与云计算的天然集成

二、SpringBoot入门程序

2.1 环境准备

  • jdk1.8
  • maven3.x
  • IntelliJ IDEA 2017
  • Spring Boot 1.5.9.RELEASE

2.2 创建maven项目

创建一个普通的maven项目。

2.3 导入依赖

<parent>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-parentartifactId>
    <version>1.5.9.RELEASEversion>
parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>
dependencies>

2.4 编写类

  • 编写主程序:
/**
 *  @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
 */
@SpringBootApplication
public class HelloWorldMainApplication {
    public static void main(String[] args) {
        // Spring应用启动起来
        SpringApplication.run(HelloWorldMainApplication.class,args);
    }
}
  • 编写Controller
@Controller
public class HelloController {
    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "Hello World!";
    }
}

2.5 测试

  • 运行主程序
  • 输入 localhost:8080进行测试

三、SpringBoot入门总结

3.1 POM文件

  • 父项目:在pom文件中,我们看到配置了一个父项目 spring-boot-starter-parent,在此项目中定义了它的父项目:
<parent>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-dependenciesartifactId>
    <version>2.2.6.RELEASEversion>
    <relativePath>../../spring-boot-dependenciesrelativePath>
parent>
  • 而在 spring-boot-dependencies中定义了SpringBoot中所有依赖的版本。

3.2 入口类

  • @SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;

  • 当我们进入SpringBootApplication源码发现它被@SpringBootConfiguration、@EnableAutoConfiguration所修饰。

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
  • @SpringBootConfiguration:Spring Boot的配置类;表示这是一个Spring Boot的配置类;而它被@Configuration来标注。
  • @EnableAutoConfiguration:开启自动配置功能;

你可能感兴趣的:(SpringBoot)