实战,让学习更简单     全国咨询热线:400-009-1906

北京 切换校区

全国24小时免费热线

400-009-1906

SpringBoot系列一:SpringBoot入门

时间:2018-12-06   来源:尚学堂   阅读:112
首页> SpringBoot系列一:SpringBoot入门

1 SpringBootHelloWorld

功能:浏览器发送sayHello请求,服务器接受请求并处理,响应Hello。

1.1创建一个maven工程

<groupId>com.seagetech</groupId>

<artifactId>springboot-helloworld</artifactId>

<version>1.0.0</version>

 

1.2下载官方参考文档

在官网找到相应的下载地址(官网地址:https://spring.io/projects)或者直接使用如下地址下载:https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/pdf/spring-boot-reference.pdf。文档名称“spring-boot-reference.pdf”,版本2.10.RELEASE。

 

1.3使用官方参考文档

PartII.GettingStarted>11.DevelopingYourFirstSpringBootApplication。

1.3.1创建POM

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.1.0.RELEASE</version>

</parent>

 

1.3.2添加ClassPath依赖

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

</dependencies>

 

1.3.3编写代码

创建一个主程序类,类名随便取。因为我们是做一个HelloWorld的项目,所有我们创建一个HelloWorldApplication类:

/**
 * @auther wangzb
 * @date 2018/11/9 21:32
 */
@Controller
@EnableAutoConfiguration
public class HelloWorldApplication {
 
    @RequestMapping(value = "/sayHello")
    @ResponseBody
    public String sayHello(String name){
        return "Hello," + name;
    }
 
    public static void main(String[] args) {
        SpringApplication.run(HelloWorldApplication.class, args);
    }
}

 

1.3.4运行例子

启动main方法后,查看SpringBoot启动日志:

.   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.0.RELEASE)
 
....... . . .
....... . . . (log output here)
....... . . .  
 
... Tomcat started on port(s): 8080 (http) with context path ''
... Started HelloWorldApplication in 3.577 seconds (JVM running for 4.446)

可以看到Tomcat的启动日志:

Tomcatstartedonport(s):8080(http)withcontextpath”

即,Tomcat默认启动端口为8080,项目根路径为“”,所以在浏览器或者Postman中输入地址:http://localhost:8080/sayHello?name=wangzb,浏览器或Postman响应:

Hello,wangzb

 

1.3.5创建一个可执行的jar文件

要创建一个可执行jar,我们需要将spring-boot-maven-plugin添加到我们的pom.xml中。在dependencies部分下面插入以下几行:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

接下来就可以打包,在Idea中点击package,执行打包命令,之后我们在项目的target包下就可以看到刚打包好的springboot-helloworld-1.0.0.jar包。在包的路径下,打开CMD命令行,执行如下命令:

$ java -jar springboot-helloworld-1.0.0.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.0.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.536 seconds (JVM running for 2.864)

要退出应用程序,请按Ctrl+c或者直接关闭命令窗口,再次在浏览器中访问上面地址,发现链接已不能再访问,如果在Linux系统中,且要后台长期运行,可以在命令后加&符号,即:

java -jar springboot-helloworld-1.0.0.jar &

 

2 HelloWorld探究

2.1使用INTELLIJIDEA快速创建SPRINGBOOT项目

1)新建项目

2)左边菜单选择SpringInitializr,右边菜单选择JDK版本,然后点击Next

3)填写Maven坐标GroupId/ArtifactId、打包形式(本例使用Jar的方式,war包形式请看后续文章)、项目名称/版本等基本信息,然后点击Next

4)选择SpringBoot版本,以及需要依赖的包,这里我们选择最新版2.1.0,导入Web模块依赖包,点击Next

5)修改项目名称以及项目存放路径,默认即可,点击Finish

 

2.2SPRINGBOOT项目结构分析

通过2.1的讲解,我们熟悉了如何快速创建SpringBoot项目。接下来分析SpringBoot项目结构,上节中创建好的SpringBoot项目结构如下:

 

2.2.1pom.xml文件

2.2.1.1父项目

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.1.0.RELEASE</version>
   <relativePath/> <!-- lookup parent from repository -->
</parent>

按住Ctrl,点击spring-boot-starter-parent进入spring-boot-starter-parent项目,它的父项目是:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.1.0.RELEASE</version>
    <relativePath>../../spring-boot-dependencies</relativePath>
</parent>

如上,可以看到spring-boot-dependencies。它是真正管理SpringBoot项目所有依赖版本,是SpringBoot的版本仲裁中心,以后我们导入依赖默认是不需要写版本(没有在dependencies里面管理的依赖自然需要声明版本号)。

 

2.2.1.2启动器(Starter)

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

spring-boot-starter:spring-boot场景启动器。帮我们导入了Web模块正常运行所依赖的组件。SpringBoot将所有的功能场景都抽取出来,做成许多启动器(starter),只需要在项目里面引入这些启动器,相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。

1)以下列举SpringBoot官方提供的starterpom

更多请参考“spring-boot-reference.pdf”2.1.0.RELEASE,13.5节Starters。

2)除了官方的starterpom外,还有第三方为SpringBoot所写的starterpom

如下表所示:

 

2.2.2resources文件目录结构

static:保存所有的静态资源,如js、css、images等。

templates:保存所有的模板文件,SpringBoot默认jar使用嵌入式的Tomcat,默认不支持JSP页面,可以使用模板引擎(Thymeleaf、Freemarker)。

application.properties:SpringBoot应用配置文件,可以修改一些默认的配置,如修改Tomcat端口,项目根路径等。

 

2.2.3主程序类

打开2.1节创建的springboot-demo项目,找到SpringBootDemoApplication类:

package com.seagetech.springbootdemo;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication
public class SpringbootDemoApplication {
 
   public static void main(String[] args) {
      SpringApplication.run(SpringbootDemoApplication.class, args);
   }
}

基本和1.3.3节创建的主程序类一样,main方法加注解的形式,不同的是,Idea创建的主程序类使用的是@SpringBootApplication注解,它是SpringBoot的核心注解,也是一个组合注解,打开这个注解,源码如下:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan

@SpringBootApplication注解的核心功能其实是:@SpringBootConfiguration、@EnableAutoConfigration、@ComponentScan三个注解提供。

相关资讯

  • 北京校区
  • 山西校区
  • 郑州校区
  • 武汉校区
  • 四川校区
  • 长沙校区
  • 深圳校区
  • 上海校区
  • 广州校区
  • 保定招生办

北京海淀区校区(总部):北京市海淀区西三旗街道建材城西路中腾建华商务大厦东侧二层尚学堂
北京京南校区:北京亦庄经济开发区科创十四街6号院1号楼 赛蒂国际工业园
咨询电话:400-009-1906 / 010-56233821
面授课程: JavaEE培训大数据就业班培训大数据云计算周末班培训零基础大数据连读班培训大数据云计算高手班培训人工智能周末班培训人工智能+Python全栈培训H5+PHP全栈工程师培训

山西学区地址:山西省晋中市榆次区大学城大学生活广场万科商业A1座702
咨询电话:0354-3052381 / 18903441162

郑州学区地址:金水区东风路经三路北100米注协大厦10楼
咨询电话:0371-55177956 

武汉学区地址:湖北省武汉市江夏区江夏大道26号 宏信悦谷创业园4楼
咨询电话:027-87989193

四川学区地址:成都市高新区锦晖西一街99号布鲁明顿大厦2栋1003室
咨询电话:028-65176856 / 13880900114

长沙学区地址:长沙市岳麓区麓源路湖南电子商务基地5楼(公交车站:六沟垅)
咨询电话:0731-83072091

深圳校区地址:深圳市宝安区航城街道航城大道航城创新创业园A4栋210(固戍地铁站C出口)
咨询电话:0755-23061965 / 18898413781

上海尚学堂松江校区地址:上海市松江区荣乐东路2369弄45号绿地伯顿大厦2层
咨询电话:021-67690939

广州校区地址:广州市天河区元岗横路31号慧通产业广场B区B1栋6楼尚学堂(地铁3号线或6号线到“天河客运站”D出口,右拐直走约800米)
咨询电话:020-2989 6995

保定招生办公室

地址:河北省保定市竞秀区朝阳南大街777号鸿悦国际1101室

电话:15132423123

Copyright 2006-2018 北京尚学堂科技有限公司  京ICP备13018289号-19  京公网安备11010802015183  
媒体联系:18610174079 闫老师  

有位老师想和您聊一聊