zoukankan      html  css  js  c++  java
  • SpringBoot2(003):简要回顾“HelloWorld” web 工程

    Spring Boot2系列文章可以通过这里进行回顾:SpringBoot2(001):入门介绍、官网参考和博客汇总 


       本文主要对上一篇文章  SpringBoot2(002):手动创建第1个 SpringBoot2 简单应用——“HelloWorld” web 工程  中创建的 “HelloWorld” web 工程进行简要说明和回顾,初步介绍涉及到的概念和配置。具体参考 11. Developing Your First Spring Boot Application 。本文目录结构如下:

    1、注解: @RestController 和 @RequestMapping

      HelloWorldExample 中的第1个注解 @RestController 是一个被熟知的原型注解(stereotype
    annotation),它是一个类级别的注解,作用于整个类(的所有方法),不能单独用于某个方法上。大家都知道 @Controller 被用于处理 web 请求,比如例子中的 HelloWorldExample 类,而 @RestController 则是告诉 Spring 把对于该类中的所有请求的响应结果字符串直接返回给调用者。
      注解 @RequestMapping 提供了路由信息,简单点说就是 HTTP 访问的 URL 路径,而 / 对应的 home 方法
      @RestController@RequestMapping 都是 Spring MVC 中的注解。

    2、注解: @EnableAutoConfiguration

      @EnableAutoConfiguration 是第2个类级别的注解,用于告知如何装配 Spring。例子中的的 spring-boot-starter-web 添加了 TomcatSpring MVC,意味着这是一个 web 工程

    注:Auto-configuration 可以很好地与 Starters 协作,但是两者并没有直接关联,不使用 Starters 也能自动配置。这里使用了之后可以进行很多默认的自动装配。

    3、 main 方法

      main 方法Java 应用的入口。例子中的 main 方法通过调用 SpringApplication 的 run 方法来委托给 Spring BootSpringApplication 类。 SpringApplication 引导我们的应用程序,启动 Spring ,而 Spring 又会启动自动配置的 Tomcat web 服务器。我们需要传递 Example.class 作为 run 方法的参数来告诉 SpringApplication 哪个是主 Spring 组件。而 args 用于传递命令行的参数。就是这么简单,一个 main 方法搞定应用的启动。

    4、可执行 jar 和 Java

      Java 没有提供加载嵌套 jar 文件(jar 文件本身包含在一个 jar 中)的标准方法。因此按照正常的方式,如果希望发布一个自包含的应用程序,这可能会有问题。
      为了解决这个问题,许多开发人员使用“uber”jaruber jar 将应用程序的所有依赖中的所有类打包到一个单独的归档中。这种方法的问题是很难看出应用程序中有哪些类库。如果在多个 jar 中使用相同的文件名(但内容不同),也可能会出现问题。
      Spring Boot 采用了一种不同的方法,允许直接嵌套 jar。pom.xml 中用了 spring-boot-maven-plugin 用于打包创建可执行的 jar。例子中使用了 spring-boot-starter-parent ,包含了用于 repackage goal<executions> 配置。只要使用这个配置,就可以直接打出一个可执行的 jar 包,用于项目的直接运行,非常方便。

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

       以上便是一个最基本的 Spring Boot 应用会涉及到的概念和配置。可以初步看出 springboot 确实做了很多的简化和开箱即用的配置,舍弃了很多常见地 xml 配置项,大大地提升了开发效率。

    5、参考

  • 相关阅读:
    LeetCode 130. 被围绕的区域 (DFS)
    LeetCode 200. 岛屿数量 (BFS)
    LeetCode 200. 岛屿数量 (DFS)
    Win10下Anaconda命令行相关操作
    LeetCode 53. 最大子序和
    从尾到头打印链表
    字符串逆序
    交换俩字符串
    LeetCode 147. 对链表进行插入排序
    LeetCode 面试题 02.08. 环路检测
  • 原文地址:https://www.cnblogs.com/wpbxin/p/11809387.html
Copyright © 2011-2022 走看看