spring-boot介绍
以下内容来自《Spring Boot参考指南-中文版》。spring-boot最大的好处就是可以很快速的构建web项目,很适用于现在流行的微服务架构。
Spring Boot简化了基于Spring的应用开发,你只需要”run”就能创建一个独立的,产品级别的Spring应用。
我们为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用只需要很少的Spring配置。
你可以使用Spring Boot创建Java应用,并使用java
-jar启动它或采用传统的war部署方式。我们也提供了一个运行”spring脚本”的命令行工具。 我们主要的目标是:
- 为所有Spring开发提供一个从根本上更快,且随处可得的入门体验。
- 开箱即用,但通过不采用默认设置可以快速摆脱这种方式。
- 提供一系列大型项目常用的非功能性特征,比如:内嵌服务器,安全,指标,健康检测,外部化配置。
- 绝对没有代码生成,也不需要XML配置。
工程搭建
快速构建
推荐:http://start.spring.io/ ,简直不要太爽,下面简单介绍下怎么用。【暂不讨论gradle】
- 进入该页面,点击 Switch to the full version.,可以看到常用的基本配置。
- 至于依赖的jar包,我们可以在该页面下面的可选项中勾选,就会添加我们需要的jar包。
- 点击Generate Project下载项目压缩包,然后再用我们的开发工具打开该maven项目即可进行开发。
手工创建
当然,我们也可以自己创建一个maven项目,手动来添加相关依赖。下面的这个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>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>1.5.3.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>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
这个pom.xml的内容是我只配置了基本信息,没有配置其他jar包依赖的内容,该项目工程打开也就一个java类,和一个空的配置文件。重点在于parent的配置,这里是引入springboot的核心内容及版本信息,有兴趣的同学可以自己点进去看看,里面是把各种各样的东西都引入了,等待着我们的开启,如果我们在dependencies中引入相关jar包,就可以使用相关的功能。下面的spring-boot-starter是springboot的基本配置,包括自动配置支持、日志和YAML;
目录结构
一般目录结构如下:
com
+- example
+- demo
+- Application.java
|
+- domain
| +- SysInfo.java
| +- SysInfoRepository.java
|
+- service
| +- SysInfoService.java
|
+- controller
| +- SysInfoController.java
|
- Application.java 建议放到跟目录下面,主要用于做一些框架配置
- domain目录主要用于实体(Entity)与数据访问层(Repository)
- service 层主要是业务类代码
- controller 负责页面访问控制
项目运行
为了更好的运行和体验该项目,我们引入web模块,写一个接口,通过浏览器访问。
- maven dependencies添加相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- Application类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
//@RestController //相当于同时添加@Controller和@ResponseBody注解。
//@EnableAutoConfiguration
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 自己随便写一个Controller类
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by gonghao on 2017/5/31.
*/
@RestController
public class SimpleController {
@RequestMapping("/hello")
public String index() {
return "Hello Spring Boot";
}
@RequestMapping("/test")
public String test(){
return "Test";
}
}
启动方式
1.直接运行Application.java类,右键run或者debug即可。
浏览器输入 http://localhost:8080/hello 访问
2.maven 命令行:在该项目根目录执行命令 mvn spring-boot:run
直到出现build-success即可。
3.jar包方式执行:在该项目根目录执行 mvn package,将会在target目录下生成一个可执行的jar包,jar包中包含了所有依赖的jar包。进到target层,执行java -jar xxxx.jar 即可启动项目
返回上一层目录,按住shift键右键,在此处打开命令窗口:
访问:
至此,我们就已经完成了一个springboot的demo,相比于我们传统的创建web工程的方式简直不要太方便。后面我们继续学习springboot的其他内容。