• (一)SpringBoot2.0基础篇- 介绍及HelloWorld初体验


    1.SpringBoot介绍:

      根据官方SpringBoot文档描述,BUILD ANYTHING WITH SPRING BOOT (用SPRING BOOT构建任何东西,很牛X呀!),下面是官方文档介绍(文档地址,感兴趣可以看看:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-documentation):

      

      • 启动项目在秒范围内;
      • 构建任何东西——REST API、WebSocket、Web、流媒体、任务等等;
      • 简化的安全架构;
      • 丰富的关系型数据库和非关系型数据库的支持;
      • 嵌入式的运行环境支持,Tomcat,Jetty和Undertow;
      • 开发人员的福利,热部署等;
      • 仅仅是工作上的依赖;
      • 可生产性,跟踪,监控等特性;
      • 支持你常用的IDE工具;、

    2.SpringBoot运行环境:

      2.1 JDK环境:1.8+;

      2.2 项目构建工具:maven:3.2+;

             gradle:与4兼容;

    2.3 Servlet容器:

    NameServlet Version

    Tomcat 8.5

    3.1

    Jetty 9.4

    3.1

    Undertow 1.4

    3.1

    3.SpringBoot初体验(HelloWorld):

      3.1 引入Maven依赖库:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0"
     3   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5   <modelVersion>4.0.0</modelVersion>
     6 
     7   <groupId>com.cn</groupId>
     8   <artifactId>spring-boot-hello</artifactId>
     9   <version>1.0-SNAPSHOT</version>
    10 
    11   <properties>
    12     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    13     <java.version>1.8</java.version>
    14   </properties>
    15 
    16   <parent>
    17     <groupId>org.springframework.boot</groupId>
    18     <artifactId>spring-boot-dependencies</artifactId>
    19     <version>2.0.1.RELEASE</version>
    20   </parent>
    21 
    22   <dependencies>
    23     <dependency>
    24       <groupId>org.springframework.boot</groupId>
    25       <artifactId>spring-boot-starter-web</artifactId>
    26     </dependency>
    27   </dependencies>
    28 </project>
    pom.xml

      3.2 创建启动类:

     1 package com.cn;
     2 
     3 import org.springframework.boot.SpringApplication;
     4 import org.springframework.boot.autoconfigure.SpringBootApplication;
     5 
     6 /**
     7  * @program: spring-boot-example
     8  * @description: 启动类
     9  * @author:
    10  * @create: 2018-04-28 10:42
    11  **/
    12 @SpringBootApplication
    13 public class HelloApplication {
    14 
    15     /**
    16      * @Description:
    17      * @Param: [Class]  配置类源类
    18      * @Param: [args]   应用启动参数
    19      * @return: void
    20      * @Author:
    21      * @Date: 2018/4/28
    22      */
    23     public static void main(String[] args) {
    24         SpringApplication.run(HelloApplication.class, args);
    25     }
    26 
    27 }
    HelloApplication.java

      3.3 创建Controller访问对接口:

     1 package com.cn.controller;
     2 
     3 import org.springframework.web.bind.annotation.RequestMapping;
     4 import org.springframework.web.bind.annotation.RestController;
     5 
     6 /**
     7  * @program: spring-boot-example
     8  * @description: 控制层:helllocontroller
     9  * @author:
    10  * @create: 2018-04-28 10:49
    11  **/
    12 
    13 @RestController
    14 public class HelloController {
    15 
    16     /**
    17      * @Description:
    18      * @Param:
    19      * @return:
    20      * @Author: 
    21      * @Adress: http://localhost:8080/hello
    22      * @Date: 2018/4/28
    23      */
    24     @RequestMapping("hello")
    25     public String hello() {
    26         return "Hello World!";
    27     }
    28 
    29 }
    HelloController.java

      注意:HelloController.java文件要在启动类的本包或子包中,才可以被启动类扫描到,详情请看:http://www.cnblogs.com/lfalex0831/p/8922468.html,SpringBoot默认扫描的范围为本包及子包;

      3.4 启动启动类,打开浏览器,输入 http://localhost:8080/hello 访问:

      

      返回HelloWorld到页面;

      注:

      • @SpringBootApplication:SpringBoot的启动类注解,查看源码发现它其实是@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan三个的注解集(源码之后会有进阶篇,我认为学一个东西先学会它的应用然后再学习它的本质);
      • SpringApplication.run(HelloApplication.class, args); 真正的启动代码,会做一些初始化操作,启动内置的监听器,创键environment对象并加载配置项等;
      • @RestController:还是查看源码发现,它是@Controller,@ResponseBody的集合,它Spring4之后新加入的注解,原来返回json需要@ResponseBody和@Controller配合,现在一步搞定;
      • @RequestMapping("hello") 请求映射不多说了;

     4.创建可执行JAR

      我们也可以通过插件创建一个在生产环境中运行的可执行jar文件来完成我们的示例。

      首先引入依赖:

    <build>
        <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>repackage</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
    </build>

      在项目目录下打开cmd命令,使用 mvn package 命令进行打包,如下:

      

      如果想查看打包后的jar文件内部目录,可用命令  jar tvf target/myproject-0.0.1-SNAPSHOT.jar 查看目录结构;

      使用 java -jar targetspring-boot-hello-1.0-SNAPSHOT.jar 启动应用如下:

      

      测试结果如3.4所演示的;

      如果在启动时遇见没有主清单目录的错误的话,请看:http://www.cnblogs.com/lfalex0831/p/8967428.html

    完整示例:https://gitee.com/lfalex/spring-boot-example

    参考官方文档:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-documentation

    版权声明:本文为博主原创文章,转载请注明出处,谢谢!
  • 相关阅读:
    面试中遇到递归算法题别慌--常见递归算法题的解题思路
    Xml日志记录文件最优方案(附源代码)
    linux下源码安装软件
    文本比较算法Ⅴ——回顾贴,对前面几篇文章的回顾与质疑
    从内存中直接运行PE程序
    谈谈Linux内核驱动的coding style
    【全面解禁!真正的Expression Blend实战开发技巧】第六章 认识ListBox
    玩转C链表
    麻省理工《C内存管理和C++面向对象编程》笔记---第一讲:认识C和内存管理
    Dll注入技术之输入法注入
  • 原文地址:https://www.cnblogs.com/lfalex0831/p/8966729.html
Copyright © 2020-2023  润新知