zoukankan      html  css  js  c++  java
  • 初涉springboot(二)

    概述

      1、环境说明

      2、HelloWorld项目细节

        3、小结

      

    一. 关于环境补充

      在上一篇的HellWorld项目中,我们构建SpringBoot项目,采用的是jdk1.8版本,springboot官方建议配合jdk1.7及其以上版本来开发springboot。而如springboot1.5.8中一些@Repeat注解都是jdk1.8才有的,所以建议是jdk1.8版本及以上来开发。同时,SpringBoot提供嵌入式的Tomcat,直接打成jar包便可运行。IDEA打包过程如下:

     

    包的位置默认位置是在target目录下 。打包好后,可以通过在命令行 java jar xxx.jar  直接运行。 并且,我们可以通过解压工具看一下,这个xxx.jar中的内容。来到lib目录下,我们可以看到有导入tomcat-embed字样的包,这就是springboot内嵌的tomcat容器,可以直接运行这个springboot的jar包,不需要打成war放到webapp目录中运行。其中也导入了运行web项目所需的基本jar包,均是自动化配置。

    二. Hello World项目的细节

       看完了环境,接下来看看该项目的pom.xml文件,来看看为什么springboot能替我们做了这么多“人性化”的工作。

     在POM文件中,我们可以看到有如下的,不同以往的配置。我们来一 一解释。

      1.  父级依赖

    ①、首先看到我们的是springboot-helloworld.pom.xml文件中依赖了此父级依赖

    <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.18.BUILD-SNAPSHOT</version>
      <relativePath/> <!-- lookup parent from repository -->
    </parent>


    ②、ctrl + 左键 点击 spring-boot-starter-parent 进入此父项目,发现其也依赖一个父项目

    <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>1.5.18.BUILD-SNAPSHOT</version>
      <relativePath>../../spring-boot-dependencies</relativePath>
    </parent>


    ③、点击spring-boot-dependencies,进入查看父项目 ,可以发现,这里文件中配置了大量的版本依赖属性,
    ps : 在<properties>标签中,在此不截图。

      可以看到,在 spring-boot-dependencies项目中配置了我们熟知的一些组件的版本,如连接池、切面、json版本。它是真正管理 SpringBoot组件版本的 管理中心。因为它的存在,只要它有配置的,我们都可以不配置依赖的版本,SpringBoot自动帮助我们配置。当然,我们也可以自己添加、修改没有的或者已有的组件的版本,只需要在我们自己项目的pom.xml文件的 <properties>属性添加即可:

    spring-boot-dependencies.pom默认配置:
      <spring.version>4.3.20.RELEASE</spring.version>


    自己的pom文件中加入即可修改:
      

    <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

      <spring.version>5.0.0.RELEASE</spring.version>
    </properties>

      2.  starter 启动器

       何为“启动器”,自然是通过这个“东西”去启动对应的特定功能。同样的,我们能在父项目 spring-boot-dependencis.pom中看到,在<dependencies>标签中看到大量的 spring-boot-starter-xxx组件。再结合我们helloworld项目中的pom:

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

      没错,它的功能就是,我们需要什么功能的组件,就导入什么 starter ,springboot就可自动为我们添加该组件。上述我们需要springboot的web功能,就对应配上spring-boot-starter-web 组件。着实方便。

      3.插件

      在helloworld中的插件:

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

    这个插件是帮助我们打成jar包用。在初涉springboot(一)中,我们通过 package命令直接打成jar包而不是war,得益于此。

      4. @SpringBootApplication 注解

     在主程序入口中,我们是通过执行此注解所在类的main方法跑动项目的,这个注解标识此为主程序类,是一个Spring Boot应用。此注解要放在其他类的同级目录或子目录之下,否则会找不到其他类。(这是个坑,因为SpringBoot默认配置了扫描的位置。) 关于@SpringBootApplication注解后续会详述。

    三.小结

      要称为一个SpringBoot项目,就需要标注 @SpringBootApplication注解代表程序入口;

      启动器starter引入功能;

      父级依赖的spring-boot-dependencies.pom则配置了默认版本。

     三者相互作用,跑动第一个SpringBoot项目。

      如有错误,敬请斧正,以免误导他人。

      

  • 相关阅读:
    迁移博客到Github Pages
    局域网传输文件的一点研究
    0CTF 2017 部分Web的某些不一样的思路
    WPScan初体验
    几种语言的CGI编程
    博客园站内短消息XSS
    nc分析代理服务器
    一个PHP混淆后门的分析
    瘟疫公司中国版(Android)手动破解内购
    参加 Tokyo Westerns / MMA CTF 2nd 2016 经验与感悟 TWCTF 2016 WriteUp
  • 原文地址:https://www.cnblogs.com/lingz/p/9998481.html
Copyright © 2011-2022 走看看