spring-boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。它不再需要繁琐的XML配置,能够自动发现并自动处理复杂的依赖管理。Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。
Spring Boot 支持Maven和Gradle构建系统,可以打包成jar或者war。
具体使用
可以选择按照http://projects.spring.io/spring-boot/ 的说明,Maven继承org.springframework.boot 来构建系统。全新项目的话,也可以使用http://start.spring.io/ 直接下载一个创建好的工程,在IDE中直接导入即可。
使用Maven创建
在 http://start.spring.io/ 可以选择Maven和Gradle 两种方式构建,并提供了一些常用的库。
这里选择了,web, jdbc,mysql,redis,选择好了之后直接generate,即可开始下载创建的工程。
下载后解压,在IntelliJ IDE中 new->Project from Existing Source 导入即可(注意使用maven选项)。
自动创建的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.znn</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.4.0.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-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</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里面配置了mysql,而现在并没有给mysql设置dataSource,所以这里会报错。在Spring Boot中是在src-resource-application.properties
里设置DataSource。
application.properties:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/database
spring.datasource.username=root
spring.datasource.password=
现在就能够正常启动Spring Boot了。
现在由于还没有配置controller,所以在打开localhost的时候会提示没有没有找到mapping。
我们创建一个Controller,里面定义两个接口,一个返回字符串,一个接口返回json:
package com.znn.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
@Controller
public class TestController {
@RequestMapping("/")
@ResponseBody
String home(){
return "Hello Spring Boot!!";
}
@RequestMapping("/map")
@ResponseBody
HashMap<String, Object> map(){
HashMap<String, Object> map = new HashMap<>();
map.put("code", 100);
map.put("msg", "success");
return map;
}
}
再次运行,打开 http://localhost:8080/ 就可以看到打印出了 Hello Spring Boot!!
。
默认的打包方式是jar,我们可以使用mvn直接打包:
mvn clean package
打好的jar包存放在target目录下,可以直接使用
java -jar target/demo-0.0.1-SNAPSHOT.jar
来运行项目。到这里可以看出来,Spring Boot相比Spring 去除了复杂的xml配置,更加简便快捷。
Spring Boot当然也支持war的形式打包,我们需要修改pom.xml中的packaging为war,然后还需要添加tomcat的支持。
修改后的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.znn</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</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.4.0.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-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</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>
运行过程同上。
使用Gradle创建
待续