SpringBoot(一)——简介、HelloWorld、Json

SpringBoot(一)——简介、HelloWorld、Json

一、什么是Spring Boot

  Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

二、Spring Boot特性

  1. 创建独立的Spring应用程序
  2. 嵌入的Tomcat,无需部署WAR文件
  3. 简化Maven配置
  4. 自动配置Spring
  5. 提供生产就绪型功能,如指标,健康检查和外部配置
  6.开箱即用,没有代码生成,也无需XML配置。

三、Spring Boot特性理解

  1、为基于Spring的开发提供更快的入门体验
  2、开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求。
  3、提供了一些大型项目中常见的非功能特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。
  4、Spring Boot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式。

四、开发Spring Boot(Hello World)

1、开发前准备

  1) 开发环境JDK 1.8
  2) 开发工具(Eclipse)
  3) 项目管理工具( Maven )

2、开发步骤

1) 创建Maven Project (spring-boot-hello)

2) 写pom.xml

<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>cn.qiuuuu</groupId>
  <artifactId>spring-boot-hello</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <!-- 
spring boot 父节点依赖,引入这个之后相关的引入就不需要添加version配置,spring boot会自动选择最合适的版本进行添加。
 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.RELEASE</version>
    </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- 指定一下jdk的版本 ,这里我们使用jdk 1.8 ,默认是1.6 -->
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
        <!-- spring-boot-starter-web: MVC,AOP的依赖包....-->
        <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <!-- <version></version>由于我们在上面指定了 parent(spring boot)-->
        </dependency>

        <!-- 添加fastjson 依赖包. -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.15</version>
        </dependency>

        <!-- spring boot devtools 依赖包. -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
           <scope>true</scope>
        </dependency>

  </dependencies>

    <!-- 构建节点. -->
    <build>
        <plugins>

            <!-- 在这里添加springloader plugin
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin </artifactId>
                <dependencies>  
                   <dependency>  
                       <groupId>org.springframework</groupId>  
                       <artifactId>springloaded</artifactId>  
                       <version>1.2.4.RELEASE</version>
                   </dependency>  
                </dependencies>  
                <executions>  
                   <execution>  
                       <goals>  
                           <goal>repackage</goal>  
                       </goals>  
                       <configuration>  
                           <classifier>exec</classifier>  
                       </configuration>  
                   </execution>  
                </executions>
            </plugin>
             -->

            <!-- 这是spring boot devtool plugin -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--fork :  如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
                    <fork>true</fork>
                </configuration>
            </plugin>

        </plugins>

    </build>    
</project>

3) 在src/main/webapp包下面创建一个名为cn.qiuuuu的包

4) 在qiuuuu的包下面新建一个名为HelloController的类,内容如下:

package com.kfit;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/*
 * 在这里使用RestController(等价于@Controller和@ResonseBody)
 */
@RestController
public class HelloController {

    /*
     * 在这里使用@RequestMapping建立请求映射: http://127.0.0.1:8080/hello
     */
    @RequestMapping("/hello")
    public String hello() {
        return "<h1>Hello World</h1>";
    }
}

5) 在qiuuuu的包下面新建一个名为App的类,内容如下:

package com.kfit;

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

/*
 * 启动类:
 *   使用SpringBootApplication指定这是一个spring boot的应用程序
 */

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        // 在main方法中启动我们的程序
        SpringApplication.run(App.class, args);
    }
}

6) 在src/main/siurce包下面新建一个名为application.properties的文件,并在文件中写入以下内容:

server.port = 8089

  A、这个配置文件时Spring Boot的默认配置文件;
  B、由于我的tomcat设置的默认端口是8089,而Spring Boot的默认端口是8080,因此需要配置,让Spring Boot的启动端口为8089;
  C、若tomcat的启动端口为8080,则不需要这一步。

3、测试

1) 运行此Spring Boot程序

  运行cn.qiuuuu包下面的App文件(Run As Java Application)

SpringBoot(一)——简介、HelloWorld、Json

2) 浏览器测试

  在浏览器中输入http://localhost:8089/hello

SpringBoot(一)——简介、HelloWorld、Json

五、开发Spring Boot(返回Json数据)

  SpringBoot默认使用的是json解析框架jackson

1、开发步骤:

  在上一个项目的基础上,进行以下操作,步骤如下:

1) 在com.kift下新建一个名为Demo的实体类:

package com.kfit;

/*
 * 这是一个测试实体类。
 */
public class Demo {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

2) 在com.kift包下的HelloController中加入getDemo()方法:

package com.kfit;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/*
 * 在这里使用RestController(等价于@Controller和@ResonseBody)
 */
@RestController
public class HelloController {

    /*
     * 在这里使用@RequestMapping建立请求映射: http://127.0.0.1:8080/hello
     */
    @RequestMapping("/hello")
    public String hello() {
        return "<h1>Hello World</h1>";
    }

    @RequestMapping("/demo")
    public Demo getDemo() {
        Demo demo = new Demo();
        demo.setId(1);
        demo.setName("张三");
        return demo;
    }
}

2、测试

  在浏览器中输入http:localhost:8089/demo

相关文章
相关标签/搜索