Spring Boot快速起步。至于什么是Spring Boot?它能干些什么,我在这里不解释,想了解的朋友可以去网站自行搜索,相信你会明白。

好了,废话不多说,直接开始。
一、起步
1、创建一个普通的Maven项目
此处省略N个姿势……
2、修改pox.xml,添加Spring Boot的相关依赖
<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.bkybk</groupId>
<artifactId>boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>boot</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 增加单元测试的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!-- Package as an executable JAR -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<!-- 允许访问Spring里程碑和快照 -->
<!-- (如果您在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>
3、修改或创建App.java
package com.bkybk.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* Hello world!
*
*/
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class);
}
}
4、创建HelloController.java
package com.bkybk.boot;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Hello,Spring boot!";
}
}运行App的main方法,启动Spring Boot
微笑:“完美~ ”
二、单元测试
1、pox.xml
<!-- 增加单元测试的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>2、创建HelloTest
package com.bkybk.boot.test;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.embedded.LocalServerPort;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(classes=App.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class HelloTest {
@LocalServerPort
private int port;
@Autowired
private TestRestTemplate restTemplate;
@Test
public void greetingShouldReturestTemplaternDefaultMessage() throws Exception {
assertThat(this.restTemplate.getForObject("http://localhost:" + port + "/",
String.class)).contains("Hello,Spring boot!");
}
}运行jUnit Test,单元测试运行OK
再次微笑:“完美~ ”
三:So,怎么部署spring boot?
1、给运行机器搭建并配置Maven
此处省略一万个精彩动作和激情画面……
安装并配置完成Maven,查看Maven版本:
E:\workspace\boot>mvn -v Apache Maven 3.0.4 (r1232337; 2012-01-17 16:44:56+0800) Maven home: D:\Develop\Maven\apache-maven-3.0.4\bin\.. Java version: 1.8.0_121, vendor: Oracle Corporation Java home: D:\Develop\Java\jdk1.8.0_121\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos" E:\workspace\boot>
2、开始打包
打包命令:mvn package
如果在打包的时候要跳过自己项目中的一些测试,则添加参数 -DskipTests
E:\workspace\boot>mvn package -DskipTests [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building boot 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ boot --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory E:\workspace\boot\src\main\resources [INFO] skip non existing resourceDirectory E:\workspace\boot\src\main\resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ boot --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ boot --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory E:\workspace\boot\src\test\resources [INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ boot --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to E:\workspace\boot\target\test-classes [INFO] [INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ boot --- [INFO] Tests are skipped. [INFO] [INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ boot --- [INFO] Building jar: E:\workspace\boot\target\boot-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:1.5.6.RELEASE:repackage (default) @ boot --- Downloading: http://192.168.1.180:8081/content/groups/public/org/codehaus/plexus/plexus-classworlds/2.4/plexus-classworlds-2.4.pom Downloaded: http://192.168.1.180:8081/content/groups/public/org/codehaus/plexus/plexus-classworlds/2.4/plexus-classworlds-2.4.pom (0 B at 0.0 KB/sec) [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 5.675s [INFO] Finished at: Tue Sep 19 18:08:20 CST 2017 [INFO] Final Memory: 32M/277M [INFO] ------------------------------------------------------------------------ E:\workspace\boot>
打包完成在target下面就会有boot-0.0.1-SNAPSHOT.jar这样的jar,打包完成
3、在CMD中执行命令“java -jar file”,file就是刚刚打好的包
E:\workspace\boot>java -jar target/boot-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.6.RELEASE)
2017-09-19 18:20:12.072 INFO 10508 --- [ main] com.bkybk.boot.test.App : Starting App v0.0.1-SNAPSHOT on lenovo-PC with PID 10508 (E:\workspace\boot\target\boot-0.0.1-SNAPSHOT.jar started by lenovo in E:\workspace\boot)
2017-09-19 18:20:12.085 INFO 10508 --- [ main] com.bkybk.boot.test.App : No active profile set, falling back to default profiles: default
2017-09-19 18:20:12.167 INFO 10508 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@443b7951: startup date [Tue Sep 19 18:20:12 CST 2017]; root of context hierarchy
2017-09-19 18:20:14.503 INFO 10508 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2017-09-19 18:20:14.520 INFO 10508 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2017-09-19 18:20:14.523 INFO 10508 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.16
2017-09-19 18:20:14.654 INFO 10508 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2017-09-19 18:20:14.654 INFO 10508 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2490 ms
2017-09-19 18:20:14.830 INFO 10508 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2017-09-19 18:20:14.843 INFO 10508 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-09-19 18:20:14.849 INFO 10508 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-09-19 18:20:14.853 INFO 10508 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-09-19 18:20:14.855 INFO 10508 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2017-09-19 18:20:15.243 INFO 10508 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@443b7951: startup date [Tue Sep 19 18:20:12 CST 2017]; root of context hierarchy
2017-09-19 18:20:15.366 INFO 10508 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto public java.lang.String com.bkybk.boot.test.HelloController.index()
2017-09-19 18:20:15.372 INFO 10508 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-09-19 18:20:15.373 INFO 10508 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-09-19 18:20:15.422 INFO 10508 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-09-19 18:20:15.422 INFO 10508 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-09-19 18:20:15.463 INFO 10508 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-09-19 18:20:15.618 INFO 10508 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2017-09-19 18:20:15.710 INFO 10508 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-09-19 18:20:15.720 INFO 10508 --- [ main] com.bkybk.boot.test.App : Started App in 4.067 seconds (JVM running for 4.596)
2017-09-19 18:20:30.485 INFO 10508 --- [ Thread-3] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@443b7951: startup date [Tue Sep 19 18:20:12 CST 2017]; root of context hierarchy
这时程序就部署好了,有没有感觉So Easy?是不是炒鸡简单?
评论