目录
一、pom.xml文件解析
springboot既然这么神奇,倒要看看它的核心构建文件pom.xml有什么特别之处。
<?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>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<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>
</project>
详细介绍:
1.springboot parent 父级依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。
PS:maven中GroupID和ArtifactID介绍:
groupId :定义了项目属于哪个组,举个例子,如果你的公司是mycom,有一个项目为myapp,那么groupId就应该是com.mycom.myapp.
artifacted :定义了当前maven项目在组中唯一的ID,比如,myapp-util,myapp-domain,myapp-web等。
version :指定了myapp项目的当前版本,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。
name :声明了一个对于用户更为友好的项目名称,不是必须的,推荐为每个pom声明name,以方便信息交流。
2.spring-boot-starter-xx 起步依赖
比如:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
starter意味着开箱即用,-web意思是实现web功能。起步依赖还会依赖很多,而springboot秩序添加这个依赖,极大地简化了操作。
3.springboot Maven 插件
maven插件提供很多便捷功能:
·把项目打包成一个可执行的超级JAR(uber-JAR),包括把应用程序的所有依赖打入JAR文件内,并为JAR添加一个描述文件,其中的内容能让你用java -jar来运行应用程序。
·搜索public static void main()方法来标记为可运行类。
二、程序入口类
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
详细介绍:
1.@SpringBootApplication是Sprnig Boot项目的核心注解,主要目的是开启自动配置。
2.main()方法这是一个标准的Java应用的main的方法,主要作用是作为项目启动的入口。
新建一个类作为测试:
package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by Administrator on 2018/9/26.
*/
@RestController
public class HelloWorldController {
@RequestMapping(name = "/index")
public String index(){
return "Hello SpringBoot!";
}
}
在这里,@RestController注解等价于@Controller+@ResponseBody的结合,使用这个注解的类里面的方法都以json格式输出。
三、启动项目的三种方式
1.Application的main方法:
2.使用命令 mvn spring-boot:run”在命令行启动该应用,IDEA中该命令在如下位置:
3.运行“mvn package”进行打包时,会打包成一个可以直接运行的 JAR 文件,使用“java -jar”命令就可以直接运行。一般打包使用mvn clean install 。
使用git工具在项目目录下右键:git push here,运行如下:
在浏览器输入localhost:8080,显示如下:说明项目已经跑起来了:
本文参考:http://tengj.top/2017/02/26/springboot1/#%E5%BA%94%E7%94%A8%E5%85%A5%E5%8F%A3%E7%B1%BB略微改动,自己阅读方便~