环境介绍
Ubuntu 14.04.5 LTS
JDK1.8.0_111
IntelliJ IDEA 2016.3.2
Maven 3.3.9
项目开始之前
idea maven 以配置好
创建maven项目
- 选择File->new->project->Maven
- 下一步填写groupId和ArtifactId
- 下一步填写项目名称完成,项目目录如下:
POM配置
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.joy</groupId>
<artifactId>keep</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
下载相关jar包
选择项目右键MAVEN->Reimport 下载相关jar包
HelloController
在src->main->java目录中创建HelloController.java,代码如下:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by joy on 17-3-28.
*/
@RestController
@EnableAutoConfiguration
public class HelloController {
@RequestMapping("/")
public String hello(){
return "hello world";
}
public static void main(String[] args) {
SpringApplication.run(HelloController.class);
}
}
运行代码
选择HelloController.java右键Run ‘HelloController.main()’ 或者 ctrl + shift + F10。
执行效果如下:
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.0.BUILD-SNAPSHOT)
2017-03-28 14:41:53.934 INFO 17224 --- [ main] HelloController : Starting HelloController on joy-ThinkPad-Edge-E431 with PID 17224 (/home/joy/workspace/mavenspace/keep/target/classes started by joy in /home/joy/workspace/mavenspace/keep)
2017-03-28 14:41:53.938 INFO 17224 --- [ main] HelloController : No active profile set, falling back to default profiles: default
2017-03-28 14:41:54.127 INFO 17224 --- [ main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@7364985f: startup date [Tue Mar 28 14:41:54 CST 2017]; root of context hierarchy
2017-03-28 14:41:55.835 INFO 17224 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2017-03-28 14:41:55.849 INFO 17224 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat
2017-03-28 14:41:55.850 INFO 17224 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.12
2017-03-28 14:41:55.970 INFO 17224 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2017-03-28 14:41:55.970 INFO 17224 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1847 ms
2017-03-28 14:41:56.213 INFO 17224 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2017-03-28 14:41:56.220 INFO 17224 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-03-28 14:41:56.221 INFO 17224 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-03-28 14:41:56.221 INFO 17224 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-03-28 14:41:56.221 INFO 17224 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2017-03-28 14:41:56.690 INFO 17224 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@7364985f: startup date [Tue Mar 28 14:41:54 CST 2017]; root of context hierarchy
2017-03-28 14:41:56.792 INFO 17224 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto public java.lang.String HelloController.hello()
2017-03-28 14:41:56.800 INFO 17224 --- [ 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.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-03-28 14:41:56.800 INFO 17224 --- [ 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.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-03-28 14:41:56.844 INFO 17224 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-03-28 14:41:56.844 INFO 17224 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-03-28 14:41:56.928 INFO 17224 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-03-28 14:41:57.119 INFO 17224 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2017-03-28 14:41:57.189 INFO 17224 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http)
2017-03-28 14:41:57.195 INFO 17224 --- [ main] HelloController : Started HelloController in 3.932 seconds (JVM running for 4.536)
在浏览器中访问localhost:8080返回“hello world”.
打包
- 在pom.xml文件中
</dependencies>
后添加以下代码:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.2.RELEASE</version>
</plugin>
</plugins>
</build>
- 选择项目右键MAVEN->Reimport 下载相关jar包
- 进入pom.xml所在目录,执行
mvn package
- 进入pom.xml同级目录target目录会看到keep-1.0-SNAPSHOT.jar文件(该文件就是生产环境的jar)。
- 执行
java -jar keep-1.0-SNAPSHOT.jar
,效果图如下:
在浏览器中访问http://localhost:8080返回”helloworld”