zoukankan      html  css  js  c++  java
  • Spring Boot入门

    什么是Spring Boot

    Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

    用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。

     

    使用 Spring Boot有什么好处

    其实就是简单、快速、方便!平时如果我们需要搭建一个 Spring Web 项目的时候需要怎么做呢?

    • 1)配置 web.xml,加载 Spring 和 Spring mvc
    • 2)配置数据库连接、配置 Spring 事务
    • 3)配置加载配置文件的读取,开启注解
    • 4)配置日志文件
    • 配置完成之后部署 Tomcat 调试

    现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!

    但是如果使用 Spring Boot 呢?
    很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套 Web 项目或者是构建一个微服务!

     

    上手:

    构建一个Sping Boot的Maven项目,推荐Spring Initializr,它从本质上来说就是一个Web应用程序,它能为你生成Spring Boot项目结构。
    Spring Initializr有几种用法:

    • 通过Web界面使用
      1. 访问:http://start.spring.io/
      2. 选择构建工具Maven Project、Spring Boot版本1.5.1以及一些工程基本信息,可参考下

    1. 点击Generate Project下载项目压缩包

    2. 导入到你的工程,如果是IDEA,则需要:
      a.菜单中选择File–>New–>Project from Existing Sources...
      b.选择解压后的项目文件夹,点击OK
      c.点击Import project from external model并选择Maven,点击Next到底为止。
      d.若你的环境有多个版本的JDK,注意到选择Java SDK的时候请选择Java 7以上的版本

    通过IntelliJ IDEA使用。
    创建Spring Boot操作步骤如下:


    1.在File菜单里面选择 New > Project,然后选择Spring Initializr,接着如下图一步步操作即可。

     

    根据上面的操作已经初始化了一个Spring Boot的框架了,项目结构如下

    包含如下几样东西。

    • pom.xml:Maven构建说明文件。
    • Chapter1Application.java:一个带有main()方法的类,用于启动应用程序(关键)。
    • Chapter1ApplicationTests.java:一个空的Junit测试类,它加载了一个使用Spring Boot字典配置功能的Spring应用程序上下文。
    • application.properties:一个空的properties文件,你可以根据需要添加配置属性

    Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。举个例子来说明一下这个起步依赖的好处,比如组装台式机和品牌机,自己组装的话需要自己去选择不同的零件,最后还要组装起来,期间有可能会遇到零件不匹配的问题。耗时又消力,而品牌机就好一点,买来就能直接用的,后续想换零件也是可以的。相比较之下,后者带来的效果更好点(这里就不讨论价格问题哈),起步依赖就像这里的品牌机,自动给你封装好了你想要实现的功能的依赖。就比如我们之前要实现web功能,引入了spring-boot-starter-web这个起步依赖。我们来看看spring-boot-starter-web到底依赖了哪些,如下图:

    看来依赖了好多,Spring Boot通过提供众多起步依赖降低项目依赖的复杂度。起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),

    定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。很多起步依赖的命名都暗示了它们提供的某种或者某类功能。

    Spring Boot Maven插件

    1
    2
    3
    4
    5
    6
    7
    8
    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>

    上面的配置就是Spring Boot Maven插件,Spring Boot Maven插件提供了许多方便的功能:

    • 把项目打包成一个可执行的超级JAR(uber-JAR),包括把应用程序的所有依赖打入JAR文件内,并为JAR添加一个描述文件,其中的内容能让你用java -jar来运行应用程序。
    • 搜索public static void main()方法来标记为可运行类。

    应用入口类

    Chapter1Application是一个很关键的启动类,程序的入口就是这里,为了演示简单,我们不再新建控制类,而是直接在这个入口类中编写,添加@RestController以及index方法,如

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @SpringBootApplication
    public class Chapter1Application {
    
        @RequestMapping("/")
        public String index(){
            return "Hello Spring Boot";
        }
        public static void main(String[] args) {
            SpringApplication.run(Chapter1Application.class, args);
        }
    }
     
     
    1. @SpringBootApplication是Sprnig Boot项目的核心注解,主要目的是开启自动配置。后续讲解原理的时候再深入介绍。
    2. main方法这是一个标准的Java应用的main的方法,主要作用是作为项目启动的入口。

    3. @RestController注解等价于@Controller+@ResponseBody的结合,使用这个注解的类里面的方法都以json格式输出。

    最后,启动项目有三种方式:

    • Chapter1Application的main方法
    • 使用命令 mvn spring-boot:run”在命令行启动该应用,IDEA中该命令在如下位置:
    • 运行“mvn package”进行打包时,会打包成一个可以直接运行的 JAR 文件,使用“java -jar”命令就可以直接运行。

    打开浏览器访问http://localhost:8080, 你就能看到页面显示Hello Spring Boot效果了,一个简单的Web的项目就是如此简单。

    总结

    初始化一个Spring Boot,添加一个控制类,启动就能看到效果了。
    Spring Boot的入门介绍,相关的需要理解的概念就只有这几点:

      • Spring Boot父级依赖的概念
      • 起步依赖 spring-boot-starter-xx的概念
      • 应用入口类的作用
  • 相关阅读:
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
  • 原文地址:https://www.cnblogs.com/wangdayexinyue/p/12007124.html
Copyright © 2011-2022 走看看