(二)开发第一个SpringBoot应用
一、检查安装的Java和Maven版本是否可用
二、搭建一个简单的maven项目
1、使用Maven提供的Archetype搭建项目骨架:
命令:mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeCatalog=internal (-DarchetypeCatalog=internal 执行不会卡主)
2、替换pom文件
<?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.example</groupId> <artifactId>myproject</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.BUILD-SNAPSHOT</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!-- Additional lines to be added here... --> <!-- (you don't need this if you are using a .RELEASE versio n) --> <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>
3、编写代码
package com.example; import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.stereotype.*; import org.springframework.web.bind.annotation.*; @RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); } }
(1) @RestController
构造型(stereotype)注解,这是一个支持REST的控制器,对于Spring,该类扮演了一个特殊角色。在本示例中,我们的类是一个web@Controller ,所以当web请求进来时,Spring会考虑是否使用它来处理。
(2) @RequestMapping
提供路由信息,它告诉Spring任何来自"/"路径的HTTP请求都应该被映射到 home 方法。
(3)@EnableAutoConfiguration
告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。由于 spring-boot-starter-web 添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用,并对Spring进行相应地设置。
Starters和Auto-Configuration:Auto-configuration设计成可以跟"Starters"一起很好的使用,但这两个概念没有直接的联系。你可以自由地挑选starters以外的jar依赖,Spring Boot仍会尽最大努力去自动配置你的应用。
4、运行示例
控制台输入:mvn spring-boot:run 启动应用
使用浏览器打开localhost:8080
ctrl-c关闭应用程序
5、创建可执行jar
(1)为了创建可执行的jar,需要将 spring-boot-maven-plugin 添加到 pom.xml 中,在dependencies节点后面插入以下内容:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
(2)保存 pom.xml ,并从命令行运行 mvn package
(3)运行jar tvf target/myproject-0.0.1-SNAPSHOT.jar,查看target目录
D:\实战\SpringBoot\2创建第一个SpringBoot项目\myproject>jar tvf target/myproject-0.0.1-SNAPSHOT.jar 0 Fri Nov 22 21:18:28 CST 2019 META-INF/ 368 Fri Nov 22 21:18:28 CST 2019 META-INF/MANIFEST.MF 0 Fri Nov 22 20:48:16 CST 2019 com/ 0 Fri Nov 22 20:48:48 CST 2019 com/example/ 981 Fri Nov 22 20:48:48 CST 2019 com/example/Example.class 0 Fri Nov 22 21:18:28 CST 2019 META-INF/maven/ 0 Fri Nov 22 21:18:28 CST 2019 META-INF/maven/com.example/ 0 Fri Nov 22 21:18:28 CST 2019 META-INF/maven/com.example/myproject/ 1962 Fri Nov 22 21:18:12 CST 2019 META-INF/maven/com.example/myproject/pom.xml 126 Fri Nov 22 21:18:28 CST 2019 META-INF/maven/com.example/myproject/pom.properties
在该目录下,你应该还能看到一个很小的名为 myproject-0.0.1-SNAPSHOT.jar.original 的文件,这是在Spring Boot重新打包前,Maven创建的原始jar文件。
(4)运行java -jar target/myproject-0.0.1-SNAPSHOT.jar,执行jar包, ctrl-c 退出执行,
到此,第一个SpringBoot应用完成