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容器:

Name Servlet Version

Tomcat 8.5

3.1

Jetty 9.4

3.1

Undertow 1.4

3.1

3.SpringBoot初体验(HelloWorld):

  3.1 引入Maven依赖库:

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.cn</groupId>
<artifactId>spring-boot-hello</artifactId>
<version>1.0-SNAPSHOT</version> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.1.RELEASE</version>
</parent> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>

pom.xml

  3.2 创建启动类:

 package com.cn;

 import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; /**
* @program: spring-boot-example
* @description: 启动类
* @author:
* @create: 2018-04-28 10:42
**/
@SpringBootApplication
public class HelloApplication { /**
* @Description:
* @Param: [Class] 配置类源类
* @Param: [args] 应用启动参数
* @return: void
* @Author:
* @Date: 2018/4/28
*/
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
} }

HelloApplication.java

  3.3 创建Controller访问对接口:

 package com.cn.controller;

 import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; /**
* @program: spring-boot-example
* @description: 控制层:helllocontroller
* @author:
* @create: 2018-04-28 10:49
**/ @RestController
public class HelloController { /**
* @Description:
* @Param:
* @return:
* @Author:
* @Adress: http://localhost:8080/hello
* @Date: 2018/4/28
*/
@RequestMapping("hello")
public String hello() {
return "Hello World!";
} }

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 target\spring-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

(一)SpringBoot基础篇- 介绍及HelloWorld初体验的更多相关文章

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

    1.SpringBoot介绍: 根据官方SpringBoot文档描述,BUILD ANYTHING WITH SPRING BOOT (用SPRING BOOT构建任何东西,很牛X呀!),下面是官方文 ...

  2. (二)SpringBoot基础篇- 静态资源的访问及Thymeleaf模板引擎的使用

    一.描述 在应用系统开发的过程中,不可避免的需要使用静态资源(浏览器看的懂,他可以有变量,例:HTML页面,css样式文件,文本,属性文件,图片等): 并且SpringBoot内置了Thymeleaf ...

  3. 视频作品《springboot基础篇》上线了

    1.场景描述 第一个视频作品出炉了,<springboot基础篇>上线了,有需要的朋友可以直接点击链接观看.(如需购买,请通过本文链接购买) 2. 课程内容 课程地址:https://ed ...

  4. springboot+支付宝完成秒杀项目的初体验

    springboot+支付宝完成秒杀项目的初体验 思考的问题: 首先是秒杀的商品查询,考虑到是热点数据,所以写一个接口读取当日批次的秒杀商品到redis中(那么接下来对商品的操作都放入redis中). ...

  5. iOS系列 基础篇 01 构建HelloWorld,剖析并真机测试

    iOS基础 01 构建HelloWorld,剖析并真机测试 前言: 从控制台输出HelloWorld是我们学习各种语言的第一步,也是我们人生中非常重要的一步. 多年之后,我希望我们仍能怀有学习上进的心 ...

  6. 重新整理 mysql 基础篇————— 介绍mysql[一]

    前言 准备整理mysql的基础篇了,前面整理了sql语句序列的的<sql 语句系列(八百章)>,感觉很多用不上,就停下来了,后续还是会继续整理. mysql 基础篇主要是对一些基础进行整理 ...

  7. SpringBoot基础篇-SpringBoot快速入门

    SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成applic ...

  8. Springboot学习:介绍与HelloWorld

    1. 什么是 Spring boot Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用 整个Spring技术栈的一个大整合 ...

  9. RPC框架基础概念理解以及使用初体验

    RPC:Remote Procedure Call(远程服务调用) RPC是做什么的 通过RPC框架机器A某个进程可以通过网络调用机器B上的进程方法,就像在本地上调用一样. RPC可以基于HTTP或者 ...

随机推荐

  1. C++ Primer 有感(异常处理)(二)

    异常就是运行时出现的不正常,例如运行时耗尽了内存或遇到意外的非法输入.异常存在于程序的正常功能之外,并要求程序立即处理.不能不处理异常,异常是足够重要的,使程序不能继续正常执行的事件.如果找不到匹配的 ...

  2. ios swift模仿qq登陆界面,xml布局

    给大家推荐两个学习的地址: 极客学院的视频:http://www.jikexueyuan.com/path/ios/ 一个博客:http://blog.csdn.net/lizhongfu2013/a ...

  3. oracle ebs应用产品安全性-定义访问权限集

    定义 定义访问权限集是一项分配至责任层的可选的安全功能,是对Oracle 11i应用产品弹性域安全性定义的功能扩展,对总帐管理模块的一些内容进行安全性定义和权限分配的集合,以控制不同的责任对一些内容的 ...

  4. HTML DOCTYPE 的重要性

    定义和用法 <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. <!DOCTYPE> 声明不是 HTML 标签:它是指示 we ...

  5. 华为机试题【10】-求数字基root

    题目描述: 求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复; 输入:输入任意一个或多个整数 输出:输出各位数字之和,直到和为个位数为止(输入异常,则返回-1),多行,每行对应一 ...

  6. Leetcode_34_Search for a Range

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/44021767 Given a sorted array o ...

  7. 一个简单的多机器人编队算法实现--PID

    用PID进行领航跟随法机器人编队控制 课题2:多机器人编队控制研究对象:两轮差动的移动机器人或车式移动机器人研究内容:平坦地形,编队的保持和避障,以及避障和队形切换算法等:起伏地形,还要考虑地形情况对 ...

  8. 聊聊String

    当我们最开始学习java的时候,老师会告诉我们字符串的比较需要用equals(); 真的是这样的吗? 我们看看下面的例子 public class TestString { public static ...

  9. AngularJS进阶(三)HTML:让表单、文本框只读,不可编辑的方法

    HTML:让表单.文本框只读,不可编辑的方法 有时候,我们希望表单中的文本框是只读的,让用户不能修改其中的信息,如使<input type="text" name=" ...

  10. 我所理解的Android 启动模式

    首先,这是从 一个开源网站转载的,觉得写得不错,对我们之前理解的activity的启动模式是一个新的理解方式,并给出实际的应用场景. 任务栈是什么 任务栈Task,是一种用来放置Activity实例的 ...