(一)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容器:
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
(一)SpringBoot2.0基础篇- 介绍及HelloWorld初体验的更多相关文章
- (一)SpringBoot基础篇- 介绍及HelloWorld初体验
1.SpringBoot介绍: 根据官方SpringBoot文档描述,BUILD ANYTHING WITH SPRING BOOT (用SPRING BOOT构建任何东西,很牛X呀!),下面是官方文 ...
- (二)SpringBoot2.0基础篇- 静态资源的访问及Thymeleaf模板引擎的使用
一.描述 在应用系统开发的过程中,不可避免的需要使用静态资源(浏览器看的懂,他可以有变量,例:HTML页面,css样式文件,文本,属性文件,图片等): 并且SpringBoot内置了Thymeleaf ...
- (六)SpringBoot2.0基础篇- Redis整合(JedisCluster集群连接)
一.环境 Redis:4.0.9 SpringBoot:2.0.1 Redis安装:Linux(Redhat)安装Redis 二.SpringBoot整合Redis 1.项目基本搭建: 我们基于(五) ...
- (四)SpringBoot2.0基础篇- 多数据源,JdbcTemplate和JpaRepository
在日常开发中,经常会遇到多个数据源的问题,而SpringBoot也有相关API:Configure Two DataSources:https://docs.spring.io/spring-boot ...
- (五)SpringBoot2.0基础篇- Mybatis与插件生成代码
SpringBoot与Mybatis合并 一.创建SpringBoot项目,引入相关依赖包: <?xml version="1.0" encoding="UTF-8 ...
- (七)SpringBoot2.0基础篇- application.properties属性文件的解析及获取
默认访问的属性文件为application.properties文件,可在启动项目参数中指定spring.config.location的参数: java -jar myproject.jar --s ...
- (三)SpringBoot2.0基础篇- 持久层,jdbcTemplate和JpaRespository
一.介绍 SpringBoot框架为使用SQL数据库提供了广泛的支持,从使用JdbcTemplate的直接JDBC访问到完整的“对象关系映射”技术(如Hibernate).Spring-data-jp ...
- 【转】WF4.0 (基础篇)
转自:http://www.cnblogs.com/foundation/category/215023.html 作者:WXWinter —— 兰竹菊梅★春夏秋冬☆ —— wxwinter@16 ...
- iOS开发swift语法0基础篇—————(swift技术交流群:361513739)
iOS开发之swift语法0基础篇:点击打开链接 swift技术交流QQ群361513739
随机推荐
- 【HNOI2009】梦幻布丁
题目描述 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色. 输入输出格式 输入格式 第一 ...
- 用firefox的插件下载网页中的视频
对于网页中的一些视频,直接下载不了,可以用专用下载软件下载,也可以用firefox的NetVideohunter Video Downloader插件下载网页中的视频,方便快捷. 工具/原料 fi ...
- [转]OpenGL与CUDA互操作方式总结
一.介绍 CUDA是Nvidia推出的一个通用GPU计算平台,对于提升并行任务的效率非常有帮助.本人主管的项目中采用了OpenGL做图像渲染,但是在数据处理方面比较慢,导致帧率一直上不来.于是就尝试把 ...
- pathinfo
location ~ \.php { fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param PATH_INFO $fastcgi_p ...
- 深入学习c++--重新审视auto
1. auto推断变量类型 2. auto遍历 3. 自定义类可使用auto
- 【51nod 1685】 第K大区间2
题目描述: 定义一个长度为奇数的区间的值为其所包含的的元素的中位数.现给出n个数,求将所有长度为奇数的区间的值排序后,第K大的值为多少. 样例解释: [l,r]表示区间的值 [1]:3 [2]:1 [ ...
- 软工之404 Note Found 队选题报告
目录 NABCD分析引用 N(Need,需求): A(Approach,做法): B(Benefit,好处): C(Competitors,竞争): D(Delivery,交付): 初期 中期 个人贡 ...
- 串行通讯协议--起止式异步通讯协议(UART)
起止式异步通讯协议: 特点与格式: 起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求.其格式如图3 所示.每一个字符的前面都有 ...
- oracle自动冷备份脚本
根据自己网上的资料和自己的需求,写的oracle冷备份脚本. 整体思路: 1.停止服务 2.文件拷贝 3.启动服务 保存以为文件为BAT格式,点击可以用下. rem ----------------- ...
- debug?用对拍!
很多人考noip之类的比赛永远会发生一些奇怪的问题 比如说下面这两位(来自我的两位学长) sliver n:spli,考得怎样啊? spli:就那样啦,day1T1没推出来规律,别的还好 silver ...