spring Boot使咱們更容易去建立基於Spring的獨立和產品級的能夠」即時運行「的應用和服務。支持約定大於配置,目的是儘量快地構建和運行Spring應用。java
以前咱們建立基於Spring的項目須要考慮添加哪些Spring依賴和第三方的依賴。使用Spring Boot後,咱們能夠以最小化的依賴開始spring應用。大多數Spring Boot應用須要不多的配置便可運行,好比咱們能夠建立獨立獨立大Java應用,而後經過java -jar運行啓動或者傳統的WAR部署。其也提供了命令行工具來直接運行Spring腳本(如groovy腳本)。也就是說Spring Boot讓Spring應用從配置到運行變的更加簡單,但不對Spring自己提供加強(即額外的功能)。git
讓全部Spring開發變得更快,且讓更多的人更快的進行Spring入門體驗,提供「starter」 POM來簡化咱們的Maven配置(也就是說使用Spring Boot只有配合maven/gradle等這種依賴管理工具才能發揮它的能力),不像之前,構建一個springmvc項目須要進行好多配置等github
開箱即用,快速開始需求開發而不被其餘方面影響(若是可能會自動配置Spring)web
提供一些非功能性的常見的大型項目類特性(如內嵌服務器、安全、度量、健康檢查、外部化配置),如能夠直接地內嵌Tomcat/Jetty(不須要單獨去部署war包)spring
絕無代碼生成,且無需XML配置apache
JDK 7json
Maven 3安全
Servlet3容器 springboot
首先使用Maven建立一個普通Maven應用便可,沒必要是web的。服務器
在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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.pcitc.springboot</groupId> <artifactId>Springboot</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>Springboot Maven Webapp</name> <url>http://maven.apache.org</url> <!-- Inherit defaults from Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>0.5.0.BUILD-SNAPSHOT</version> </parent> <!-- Add typical dependencies for a web application --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!-- Package as an executable JAR --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <!-- Allow access to Spring milestones and snapshots --> <!-- (you don't need this if you are using anything after 0.5.0.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> <snapshots> <enabled>true</enabled> </snapshots> </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後咱們能夠繼承一些默認的依賴,這樣就無需添加一堆相應的依賴,把依賴配置最小 化;spring-boot-starter-web提供了對web的支持,spring-boot-maven-plugin提供了直接運行項目的插 件,咱們能夠直接mvn spring-boot:run運行。
package com.pcitc.entity; /** * <p> * User: xxxx * <p> * Date: 2015年12月24日 * <p> * Version: 1.0 */ public class User { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; User user = (User) o; if (id != null ? !id.equals(user.id) : user.id != null) return false; return true; } @Override public int hashCode() { return id != null ? id.hashCode() : 0; } }
package com.pcitc.controller; import com.pcitc.entity.User; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * User: xxxx * <p> * Date: 2015年12月24日 * <p> * Version: 1.0 */ // @EnableAutoConfiguration @RestController @RequestMapping("/user") public class UserController { @RequestMapping("/{id}") public User view(@PathVariable("id") Long id) { User user = new User(); user.setId(id); user.setName("zhang"); return user; } // public static void main(String[] args) { // SpringApplication.run(UserController.class); // } }
第一種方式
經過在UserController中加上@EnableAutoConfiguration開啓自動配置,而後經過SpringApplication.run(UserController.class);運行這個控制器;這種方式只運行一個控制器比較方便;
第二種方式
經過@Configuration+@ComponentScan開啓註解掃描並自動註冊相應的註解Bean
package com.pcitc; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; /** * <p> * User: xxxxx * <p> * Date: 2015年12月24日 * <p> * Version: 1.0 */ @Configuration @ComponentScan @EnableAutoConfiguration public class Application { public static void main(String[] args) { SpringApplication.run(Application.class); } }
到此,一個基本的REST風格的web應用就構建完成了。
地址欄輸入http://localhost:8080/user/1便可看到json結果。
若是你們查看其依賴,會發現自動添加了須要相應的依賴(無論你用/不用),可是開發一個應用確實變得很是快速,對於想學習/體驗Spring的新手,快速創建項目模型等能夠考慮用這種方式。固然若是不想依賴這麼多的jar包,能夠去掉parent,而後本身添加依賴。
參考