SpringBoot手册学习(一)搭建环境和运行实例

SpringBoot 手册学习

SpringBoot入门指南

SpringBoot简化基于Spring的引用开发,简化了Spring许多繁琐的配置,只需要运行(Run)入口文件即可运行应用,也可以通过引入WEB依赖运行内嵌服务器(Tomcat/Jetty)等插件、部署war文件来进行传统的WEB项目的开发

SpringBoot入门Demo

  1. 安装SpringBoot基础配置:

    1. JDK 1.8(7以上建议8)
    2. Maven3.5+(用于管理项目依赖)
    3. IEDA(建议使用的开发IDE)
  2. 创建SpringBoot工程:访问官方构建项目架构网站来构建项目:填写相关的信息,如Maven+Java+SpringBoot版本号+GroupId+ArtifactId../iamges/sb10.jpg

    生成的是一个压缩包,解压后的文件夹即是项目结构,使用IDEA打开项目可看到项目结构如下

    可以看到构建的项目结构清晰,优点明显

    1. Maven文件架构+Maven依赖配置文件pom.xml
    2. SpringBoot的入口文件Application+SpringBoot的配置文件application.properties
  3. 添加Web依赖:在pom.xml中添加SpringBoot的Web依赖

    1
    2
    3
    4
    5
    <!--SpringBoot的Web依赖-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  4. 导入新增的项目依赖:pom.xml-Maven-ReImport

  5. 编写第一个控制器:在src/main/java下新建controller包,新建DemoController.java文件编写第一个控制器:

    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
    package controller;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;

    import java.util.HashMap;
    import java.util.Map;

    @RestController
    @EnableAutoConfiguration
    public class DemoController {


    @RequestMapping(value = "/demo",method = RequestMethod.GET)
    public Map demo(
    @RequestParam("name") String name
    ){
    Map<Object,String> map=new HashMap<>();
    map.put("GetName",name);
    return map;
    }

    public static void main(String[] args) throws Exception{
    SpringApplication.run(DemoController.class,args);
    }
    }

    其中涉及的关键点:

    1. @RestController和@RequestMapping:@RestController是SpringMvc中的构造型注解,功能相当于@Controller+@@ResponseBody ,提示系统这是一个支持REST风格的Web请求的API控制器并将请求结果以字符串(通常是JSON)形式返回,@RequestMapping也是SpringMvc中的注解,它为Web请求提供了路由信息,如该方法接受什么路径请求、什么请求方法等
    2. @EnableAutoConfiguration:这个注解提示了SpringBoot为类对象提供哪些Jar依赖,由于spring-boot-starter-web依赖添加了Tomcat和SpringMvc,因此SpringBoot将假定你正在开发一个Web应用并对Spring进行相应配置
    3. main方法:在其中调用了run方法将类委托给SpringBoot的SpringApplication类管理,SpringApplication类会引导Spring的启动并自动配置TomCat服务器装配我们委托的类应用
  6. 启动项目调用控制器方法:在项目的根目录下输入mvn spring-boot:run或者在IDEA中运行[项目ArtifactId+Application]

    踩坑Tips:

    1. 入口文件必须放在所有controller包的外面,因为程序运行会默认扫描入口文件下级的包,不会扫描入门文件上级的包,因此我重新在src/main/java下创建了App.java类作为入口文件,现在文件结构如下

    2. 入口文件如果放在src/main/java下,则会出现扫描警告并启动失败

      解决方法为在入口文件加入@ComponentScan()并配置扫描包路径

    运行成功后可以看到程序运行在内嵌TomCat的8080端口,打开浏览器输入localhost:8080/demo?name=harvie可以看到请求转发到我们刚写的DemoController.demo方法返回对应的JSON格式字符串

    程序会打印出日志初始化DispatcherServlet 来转发请求

  7. 创建一个可执行jar:在pom.xml的中可以看到用于打包程序的spring-boot-maven-plugin插件

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

    在项目根目录运行命令mvn package -DskipTests(跳过Test过程)

    BUILD打包成功后可在项目根目录/target中看到项目的jar包,可以使用java -jar命令通过可执行jar包运行该应用程序

    最后可看到 : Started App in 3.904 seconds (JVM running for 4.435)即运行成功