美文网首页Spring-BootSpring Boot 菜鸟教程Spring Boot
Spring Boot 学习笔记(1):快速上手

Spring Boot 学习笔记(1):快速上手

作者: HOWD | 来源:发表于2018-10-05 14:44 被阅读8次

    什么是Spring Boot?


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

    从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。简便起见,该框架也提供了命令行界面,它可以用来运行和测试Boot应用。框架的发布版本,包括集成的CLI(命令行界面),可以在Spring仓库中手动下载和安装。一种更为简便的方式是使用Groovy环境管理器(Groovy enVironment Manager,GVM),它会处理Boot版本的安装和管理。Boot及其CLI可以通过GVM的命令行gvm install springboot进行安装。在OS X上安装Boot可以使用Homebrew包管理器。为了完成安装,首先要使用brew tap pivotal/tap切换到Pivotal仓库中,然后执行brew install springboot命令。

    为什么要用Sping Boot?


    Spring由于其繁琐的配置,一度被人成为“配置地狱”,各种XML、Annotation配置,让人眼花缭乱,而且如果出错了也很难找出原因。Spring Boot项目就是为了解决配置繁琐的问题,最大化的实现convention over configuration(约定大于配置)。熟悉Ruby On Rails(ROR框架的程序员都知道,借助于ROR的脚手架工具只需简单的几步即可建立起一个Web应用程序。而Spring Boot就相当于Java平台上的ROR。

    Spring Boot特点

    1. 创建独立的Spring应用程序
    2. 嵌入的Tomcat,无需部署WAR文件
    3. 简化Maven配置
    4. 自动配置Spring
    5. 提供生产就绪型功能,如指标,健康检查和外部配置
    6. 绝对没有代码生成并且对XML也没有配置要求

    快速上手


    Maven构建项目

    打开IntelliJ IDEA

    1.File -> New Project


    image

    2.Next


    image
    3.你可以在这里选择自己需要的,在生成最终的项目时会自动加入到maven中。
    image

    选择完最终会生成一个简单的Spring Boot项目


    image
    如上图所示,Spring Boot的基础结构共三个文件:
    • src/main/java 程序开发以及主程序入口
    • src/main/resources 配置文件
    • src/test/java 测试程序

    另外,spingboot建议的目录结果如下:

    root package结构:com.example.myproject

    采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改

    最后,启动Application main方法。

    /**
     *  @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
     */
    @SpringBootApplication
    public class DemoApplication {
    
        public static void main(String[] args) {
            // Spring应用启动
            SpringApplication.run(DemoApplication.class, args);
        }
    }
    

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

    @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 {
        .................
    }
    

    如果你不想使用 @SpringBootApplication 也可以使用 @EnableAutoConfiguration
    @ComponentScan代替。

    @SpringBootConfiguration:Spring Boot的配置类;
    标注在某个类上,表示这是一个Spring Boot的配置类;

    @Target({ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Configuration
    public @interface SpringBootConfiguration {
    }
    

    @Configuration:配置类上来标注这个注解;

    配置类 ----- 配置文件;配置类也是容器中的一个组件;@Component

    @EnableAutoConfiguration:开启自动配置功能;

    以前我们需要配置的东西,Spring Boot帮我们自动配置;@EnableAutoConfiguration告诉SpringBoot开启自动配置功能;这样自动配置才能生效;

    @Target({ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Inherited
    @AutoConfigurationPackage
    @Import(EnableAutoConfigurationImportSelector.class)
    public @interface EnableAutoConfiguration {
    }
    

    @AutoConfigurationPackage:自动配置包

    @Import(AutoConfigurationPackages.Registrar.class):

    Spring的底层注解@Import,给容器中导入一个组件;导入的组件由AutoConfigurationPackages.Registrar.class;
    将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;

    感谢你花时间读到结尾!:D

    后端一枚,默默搬砖撸代码,如果觉得不错欢迎关注我的公众号

    image

    相关文章

      网友评论

        本文标题:Spring Boot 学习笔记(1):快速上手

        本文链接:https://www.haomeiwen.com/subject/zhjqaftx.html