开发第一个spring boot应用
为什么80%的码农都做不了架构师?>>>
我们来用spring boot开发一个简单的“hello world”web应用,使用maven构建。开始之前,先检查你的java与maven的版本,看是否是spring boot1.3支持的版本:
$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
$ mvn -v
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-12T04:58:10+08:00)
Maven home: /opt/apache-maven-3.2.3
Java version: 1.8.0_45, vendor: Oracle Corporation
Java home: /opt/jdk1.8.0_45/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-53-generic", arch: "amd64", family: "unix"
使用eclipse创建一个普通的maven工程
packaging为jar,并编写如下pom.xml:
<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>net.scanner</groupId><artifactId>hello_world</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.3.0.BUILD-SNAPSHOT</version></parent><!-- 如果你使用的是RELEASE版本,就不需要下面的配置 --><repositories><repository><id>spring-snapshots</id><url>http://repo.spring.io/snapshot</url><snapshots><enabled>true</enabled></snapshots></repository><repository><id>spring-milestones</id><url>http://repo.spring.io/milestone</url></repository></repositories><pluginRepositories><pluginRepository><id>spring-snapshots</id><url>http://repo.spring.io/snapshot</url></pluginRepository><pluginRepository><id>spring-milestones</id><url>http://repo.spring.io/milestone</url></pluginRepository></pluginRepositories>
</project>
添加依赖
示例中,我们在pom.xml的parent部分使用 spring-boot-starter-parent。spring-boot-starter-parent是个重要的,默认的父工程,它提供了dependency-management部分。如果我们这时候执行:
$ mvn dependency:tree
你可以看到spring-boot-starter-parent,它并没有提供什么依赖jar包。如果我们向pom.xml添加spring-boot-starter-web依赖(在parent这部分之后):
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>
你再次运行:
$ mvn dependency:tree
那这时候日志输出就不一样了!
原来tomcat是嵌入方式使用的!
写点源代码吧!
在src/main/java目录,我们创建一个java源文件:
package hello_world;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@EnableAutoConfiguration
public class Example {@RequestMapping("/")String home() {return "Hello World!";}public static void main(String[] args) {SpringApplication.run(Example.class, args);}
}
@RestController是spring4.0中的注解:RestController表明该类的每个方法返回对象而不是视图,它实际就是@Controller和@ResponseBody混合使用的简写方法。@RequestMapping就不解释了,springmvc3中就有了!@EnableAutoConfiguration注解是类级别的注解,它的意思就是开启自动配置,该注解会告知Boot要采用一种特定的方式来对应用进行配置。这种方法会将其他样板式的配置均假设为框架默认的约定,当然它是基于你添加的依赖包。本例中,我们添加了spring-boot-starter-web依赖,然后嵌入式tomcat与spring MVC都自动依赖进来了,这个@EnableAutoConfiguration注解就会假设你开发的是一个web应用程序并进行自动配置。
最后是一个main方法,它是标准的java应用程序的入口。它调用springApplication.run来引导我们的应用程序,自动配置tomcat服务并启动spring。它需要Example.class作为run方法的一个参数,告诉SpringAppLication它是一个主要的spring组件。args数组作为参数是通过命令行传入的。
运行示例
我们既然使用了spring-boot-starter-parent,那我们就有一个有用的run目标(maven中目标)来启动应用程序。在工程的根目录执行下面的命令:
$ mvn spring-boot:run
如果你打开浏览器输入:localhost:8080/ 你会看到输入:Hello World! 按ctrl + c可以优雅地退出!
创建一个可执行的jar
让我们创建一个可完全独立执行的jar文件。创建一个可独立执行的jar文件,我们需要在项目的pom.xml中添加spring-boot-maven-plugin,如下:
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>
指定java版本
pom.xml中添加:
<properties><java.version>1.8</java.version>
</properties>
完整的pom.xml文件如下:
<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>net.scanner</groupId><artifactId>hello_world</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.3.0.BUILD-SNAPSHOT</version></parent><!-- 指定java版本,只需要在这里声明下这个参数变量就可以了 --><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><!-- 如果你使用的是RELEASE版本,就不需要下面的配置 --><repositories><repository><id>spring-snapshots</id><url>http://repo.spring.io/snapshot</url><snapshots><enabled>true</enabled></snapshots></repository><repository><id>spring-milestones</id><url>http://repo.spring.io/milestone</url></repository></repositories><pluginRepositories><pluginRepository><id>spring-snapshots</id><url>http://repo.spring.io/snapshot</url></pluginRepository><pluginRepository><id>spring-milestones</id><url>http://repo.spring.io/milestone</url></pluginRepository></pluginRepositories>
</project>
注意:spring-boot-starter-parent的pom包含了<executions>配置来绑定repackage目标。如果你不使用父pom中的配置,你需要定义你自己的配置。运行:
$ mvn package
即可打包完成!!
如果你在工程的target目录下看到 hello_world-0.0.1-SNAPSHOT.jar ,那就是打包成功!如果你想看这个jar包里面的内容,可以执行:
$ jar tvf target/hello_world-0.0.1-SNAPSHOT.jar
你在target目录下,还会看到一个hello_world-0.0.1-SNAPSHOT.jar.original文件。它是在spring boot打包之前原有的jar文件。
现在运行应用程序,我们可以使用 java -jar 命令:
$ java -jar target/hello_world-0.0.1-SNAPSHOT.jar
退出按:CTRL + C。
转载于:https://my.oschina.net/fhd/blog/415936
开发第一个spring boot应用相关推荐
- 从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建
从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建 本文简介 为什么使用Spring Boot 搭建怎样一个环境 开发环境 导入快速启动 ...
- Spring Boot快速开发利器:Spring Boot CLI
Spring Boot CLI(Command Line Interface)是一个命令行工具,您可以用它来快速构建Spring原型应用.通过Spring Boot CLI,我们可以通过编写Groov ...
- eclipse创建springboot项目_创建一个 Spring Boot 项目,你会几种方法?
我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 42W+,如下图: 2017 年由于种种原因,就没有 ...
- Spring Boot-Spring Tool Suit + Gradle 构建第一个Spring Boot 项目02
概述 将工程托管到Github Gradle构建 为什么一个main函数就能启动web并提供这么多功能 幕后的 Spring Boot 分发器和 multipart 配置 视图解析器.静态资源以及区域 ...
- Spring Boot-Spring Tool Suit + Gradle 构建第一个Spring Boot 项目01
文章目录 概述 使用Spring Tool Suite构建Spring Boot项目 下载STS 插件安装 搭建第一个Spring Boot项目 启动项目 概述 通常,构建一个Spring Boot项 ...
- 一个项目有两个pom_实现一个Spring Boot Starter超简单,读 Starter 源码也不在话下...
Spring Boot 对比 Spring MVC 最大的优点就是使用简单,约定大于配置.不会像之前用 Spring MVC 的时候,时不时被 xml 配置文件搞的晕头转向,冷不防还因为 xml 配置 ...
- 【Spring-Boot】【入门 01】第一个 Spring Boot 程序
文章目录 一.SpringBoot入门 1. SpringBoot简介 2.微服务 3.Spring Boot 的基础知识 4.环境约束 5.环境配置 maven设置 IDEA设置 二.创建一个Hel ...
- Spring Boot (1) 构建第一个Spring Boot工程
Spring boot简介 spring boot是spring官方推出的一个全新框架,其设计目的是用来简化新spring应用的初始搭建以及开发过程. Spring boot特点 1.化繁为简,简化配 ...
- Spring Boot(5)---第一个Spring Boot应用程序
Spring Boot入门:开发您的第一个Spring Boot应用程序 本节介绍如何开发一个简单的"Hello World!"Web应用程序,该应用程序重点介绍Spring Bo ...
最新文章
- Ajax入门总结--Ajax跨域请求
- DEDECMS全版本gotopage变量XSS ROOTKIT 0DAY
- JDBC入门案例及相关API概述
- SVN Cannot merge into a working copy that has local modifications
- 7-30 查询水果价格 (15 分)
- 如何解决多机房、多网络下的物联网部署方案?
- ZZULIOJ1013
- Visual SourceSafe如何支持并行开发
- php faker,PHP Faker 教程
- AngularJs 生命周期$onChanges钩子函数总结
- python opencv 读取图片_Python opencv 读取图像
- 【京东春招】别人的面经中记录的问题
- 在 Windows 下用 GCC 编译器练习 C/C++ 的简单教程
- 打造在线简历生成器,让面试官眼前一亮……
- Altium_Designer(protel_DXP)英文菜单汉化对应表表
- [bzoj1984]月下“毛景树” 树链剖分
- 用计算机制作程序框图,如何制作工艺流程图 电脑绘制工艺流程图方法
- 一闪一闪亮晶晶,满屏都是小星星
- 高通中国区VR/AR负责人 郭鹏:XR要成功,最关键、最底层的技术就是空间计算
- ImportError: cannot import name ‘SummaryWriter‘ from partially initialized module ‘torch.utils.tenso