浅墨散人 浅墨散人
  • 基础
  • 设计模式
  • JVM
  • Maven
  • SpringBoot
  • 基础
  • Flask
  • Diango
  • Pandas
  • SqlAlchemy
  • Sqoop
  • Flume
  • Flink
  • Hadoop
  • Hbase
  • Hive
  • Kafka
  • Kylin
  • Zookeeper
  • Tez
  • MySQL
  • Doris
  • Chrome
  • Eclipse
  • IDEA
  • iTerm2
  • Markdown
  • SublimeText
  • VirtualBox
  • WebStrom
  • Linux
  • Mac
  • Hexo
  • Git
  • Vue
  • VuePress
  • 区块链
  • 金融
数据仓库
数据治理
读书笔记
关于我
GitHub (opens new window)
  • 基础
  • 设计模式
  • JVM
  • Maven
  • SpringBoot
  • 基础
  • Flask
  • Diango
  • Pandas
  • SqlAlchemy
  • Sqoop
  • Flume
  • Flink
  • Hadoop
  • Hbase
  • Hive
  • Kafka
  • Kylin
  • Zookeeper
  • Tez
  • MySQL
  • Doris
  • Chrome
  • Eclipse
  • IDEA
  • iTerm2
  • Markdown
  • SublimeText
  • VirtualBox
  • WebStrom
  • Linux
  • Mac
  • Hexo
  • Git
  • Vue
  • VuePress
  • 区块链
  • 金融
数据仓库
数据治理
读书笔记
关于我
GitHub (opens new window)
  • SpringBoot

    • SpringBoot
    • SpringBoot(3)_@SpringBootApplication解析
    • SpringBoot(1)_HelloWord
      • 开发环境准备
      • 创建SpringBoot项目
        • 使用IDEA创建Maven项目
        • 搭建SpringBoot
        • 启动SpringBoot
        • 访问测试
      • SpringBoot应用的启动方式
        • 运行主程序启动
        • 执行jar包启动
    • SpringBoot(2)_使用IDEA快速创建SpringBoot项目
  • Java
  • SpringBoot
2018-04-09
目录

SpringBoot(1)_HelloWord

# 开发环境准备

Java:java version "1.8.0_131"

Maven:Apache Maven 3.5.0

IDEA:IDEA 2017.1.2

# 创建SpringBoot项目

# 使用IDEA创建Maven项目

新建项目

选择Maven项目,Next

填写相应的Maven坐标,Next

然后点击Finish即可

# 搭建SpringBoot

参考SpringBoot的官方文档 (opens new window)

首先需要导入Maven的依赖,打开刚才创建项目的pom.xml文件,加入如下依赖:

# 加入SpringBoot的Maven依赖

<?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.fz</groupId>
    <artifactId>springboot-01-helloword</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--springboot的依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 新建SpringBoot的主程序

SpringBoot需要一个主程序来运行起来,注意需要使用@SpringBootApplication注解来标注该类是一个SpringBoot的主程序类,用来启动SpringBoot应用。

package com.fz;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * 使用@SpringBootApplication注解标明该类是一个主程序类,是一个springboot应用
 * Created by fangzheng on 2018/4/9.
 */
@SpringBootApplication
public class HelloWordApplication {

    public static void main(String[] args) {
        //使用SpringApplication.run()方法启动springboot程序
        SpringApplication.run(HelloWordApplication.class,args);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 新建HelloWordController

新建一个HelloWordController.java类,来处理用户发出的请求。代码很简单,和之前的SpringMVC用到的注解一样。

package com.fz.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Created by fangzheng on 2018/4/9.
 */
@Controller
public class HelloWordController {

    @RequestMapping("/helloword")
    @ResponseBody
    public String helloWord(){
        return "spring boot helloword";
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 启动SpringBoot

SpringBoot的启动很简单,直接运行SpringBoot的主程序类即可。

启动后的日志如下:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.1.RELEASE)

2018-04-09 14:59:03.507  INFO 50364 --- [           main] com.fz.HelloWordApplication              : Starting HelloWordApplication on localhost with PID 50364 (/Users/fangzheng/idea_workspace/springboot-01-helloword/target/classes started by fangzheng in /Users/fangzheng/idea_workspace/springboot-01-helloword)
2018-04-09 14:59:03.510  INFO 50364 --- [           main] com.fz.HelloWordApplication              : No active profile set, falling back to default profiles: default
2018-04-09 14:59:03.548  INFO 50364 --- [           main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@429bd883: startup date [Mon Apr 09 14:59:03 CST 2018]; root of context hierarchy
2018-04-09 14:59:04.501  INFO 50364 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2018-04-09 14:59:04.519  INFO 50364 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2018-04-09 14:59:04.519  INFO 50364 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.29
2018-04-09 14:59:04.523  INFO 50364 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/Users/fangzheng/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]
2018-04-09 14:59:04.579  INFO 50364 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2018-04-09 14:59:04.579  INFO 50364 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1034 ms
2018-04-09 14:59:04.652  INFO 50364 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2018-04-09 14:59:04.655  INFO 50364 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-04-09 14:59:04.655  INFO 50364 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-04-09 14:59:04.655  INFO 50364 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2018-04-09 14:59:04.655  INFO 50364 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2018-04-09 14:59:04.734  INFO 50364 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-04-09 14:59:04.910  INFO 50364 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@429bd883: startup date [Mon Apr 09 14:59:03 CST 2018]; root of context hierarchy
2018-04-09 14:59:04.949  INFO 50364 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/helloword]}" onto public java.lang.String com.fz.controller.HelloWordController.helloWord()
2018-04-09 14:59:04.953  INFO 50364 --- [           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)
2018-04-09 14:59:04.954  INFO 50364 --- [           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)
2018-04-09 14:59:04.971  INFO 50364 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-04-09 14:59:04.971  INFO 50364 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-04-09 14:59:05.063  INFO 50364 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2018-04-09 14:59:05.099  INFO 50364 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2018-04-09 14:59:05.102  INFO 50364 --- [           main] com.fz.HelloWordApplication              : Started HelloWordApplication in 1.958 seconds (JVM running for 2.634)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

注意查看控制台的Tomcat started on port(s): 8080 这句话,说明SpringBoot已经内嵌了Tomcat容器来运行SpringBoot的项目。

# 访问测试

打开浏览器,访问http://localhost:8080/helloword 即可看到如下结果。说明SpringBoot的helloword程序已经开发完成。

# SpringBoot应用的启动方式

# 运行主程序启动

通过主程序启动刚才已经演示过了。就是执行SpringBoot的主程序类即可。下面说说通过可执行jar文件启动的方式

# 执行jar包启动

如果我们的服务器没有按照java应用服务器,则还需要安装。所以springboot为我们提供了另外一种启动方式(命令行启动)

参考官方文档 (opens new window) 说明,需要导入springboot的maven插件,来将springboot应用打成一个jar包

打开pom.xml文件,增加如下依赖

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>
1
2
3
4
5
6
7
8

将springboot应用打包,在IDEA的Maven Projects下,执行Lifecycle下的package命令即可

执行完命令后,可以在target目录下看到已经打好的包

直接通过命令行执行该jar包即可。

执行jar包

java -jar springboot-01-helloword-1.0-SNAPSHOT.jar
1

通过浏览器访问,效果和上面的一样。

#SpringBoot
最后更新时间: 2022/7/23 10:17:11
SpringBoot(3)_@SpringBootApplication解析
SpringBoot(2)_使用IDEA快速创建SpringBoot项目

← SpringBoot(3)_@SpringBootApplication解析 SpringBoot(2)_使用IDEA快速创建SpringBoot项目→

最近更新
01
分区分桶
08-21
02
数据模型(重要)
08-21
03
安装和编译
08-21
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式