SpringBoot微服务的搭建

SpingBoot

SpringBoot是由Pivotal团队提供的全新框架,这套框架设计之初是为了简化Spring应用的搭建和开发过程,随着前端框架的发展,webpack等打包工具的出现。SpringBoot开始为前端提供接口服务,也就是我们说的微服务。这样的实现方法真正做到了前后端分离。一个很好的例子就是WEB应用和手机APP可以同用一套服务。下面将说明SpringBoot微服务搭建的过程。
SpringBoot微服务的搭建_第1张图片

开始搭建

  1. 创建maven应用(这一步不再赘述)。
  2. 引入SpringBoot框架,只需在pom.xml文件中引入SpringBoot父容器并添加Web开发所需要的相应依赖即可。

<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.0modelVersion>
	
    <groupId>com.example.servicegroupId>
    <artifactId>order-serviceartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>order-servicename>
    <description>Demo project for Spring Bootdescription>
	
	
    <properties>
        <java.version>1.8java.version>
    properties>
	
	
    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.1.3.RELEASEversion>
        <relativePath/> 
    parent>

	
    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
    dependencies>


project>

  1. 创建所需的包结构。这里我们利用一些假数据,因此就不再创建DAO层进行数据交互访问了。
    SpringBoot微服务的搭建_第2张图片
  2. 创建SpringBoot启动类。SpringBoot启动类的扫描机制是扫描其同包中或同包下的所有子包中的 JAVA文件。SpringBoot框架自带Tomcat服务器,这就使得SpringBoot应用极为简单。SpringBoot启动类如下:
package com.example.service.itemservice;

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

//SpringBoot启动类注解
@SpringBootApplication
public class ItemServiceApplication {

    public static void main(String[] args) {
    	//通过SpringBoot内部的类加载机制对字节码文件进行加载
        SpringApplication.run(ItemServiceApplication.class, args);
    }

}
  1. 对SpringBoot服务进行配置。一般有两种方式:一种是在properties文件中加上配置,另一种在yaml文件中进行配置,这里小编使用惯用的yaml文件方法进行配置,因为yaml文件配置是SpringBoot官方推荐的配置方式。而且,idea开发工具可以进行提示。
    由于我们不需要其他配置,因此这里,我们只对启动端口进行配置。
    在src->resources下创建application.yml文件
server:
  port: 8080
  1. 运行启动类,检查SpringBoot是否搭建成功。
    SpringBoot微服务的搭建_第3张图片
    出现Spring,即表示我们的项目搭建成功,现在我们对8080端口进行访问。
    SpringBoot微服务的搭建_第4张图片
    由于我们未做任何页面的配置,所以这里显示空白页,同时这也说明我们的项目搭建的没有问题。
    SpringBoot应用的搭建到这里就告一段落,下面我们开始搭建我们的微服务。

微服务的搭建

  1. 创建实体类(这里我们以商品为例)。
package com.example.service.itemservice.bean;

//小编习惯于再创建完Getter和Setter之后,创建一个无参的构造方法和有参的构造方法
//同时重写toString()方法,这里需要考虑到项目实际情况。
public class Item {

    private int id;
    private String name;
    private String desp;
    private String pic;


    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;
    }

    public String getDesp() {
        return desp;
    }

    public void setDesp(String desp) {
        this.desp = desp;
    }

    public String getPic() {
        return pic;
    }

    public void setPic(String pic) {
        this.pic = pic;
    }


    public Item() {
    }

    public Item(int id, String name, String desp, String pic) {
        this.id = id;
        this.name = name;
        this.desp = desp;
        this.pic = pic;
    }

    @Override
    public String toString() {
        return "Item{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", desp='" + desp + '\'' +
                ", pic='" + pic + '\'' +
                '}';
    }

}

  1. 写服务层代码,这里我们创建ItemService类,并且使用静态代码块的方式创建一些假数据。
package com.example.service.itemservice.service;

import com.example.service.itemservice.bean.Item;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;

//加上Service注解,说明该类为Service层容器
@Service
public class ItemService {

    private static final Map<Integer, Item> map = new HashMap<>();
	
	//创建假数据
    static {
        map.put(1, new Item(1, "商品1", "描述1", "http://localhost/pic/pic1"));
        map.put(2, new Item(2, "商品2", "描述2", "http://localhost/pic/pic2"));
    }
	
	//为Controller层提供查询数据的方法
    public Item queryItemById(int id) {
        return map.get(id);
    }

}

  1. 写Controller层代码。这里我们创建ItemController类。
package com.example.service.itemservice.controller;

import com.example.service.itemservice.bean.Item;
import com.example.service.itemservice.service.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

  /**
    * 这里我们对代码中用到的注解进行说明。
    * 1. RestController,该注解实质上是Controller和ResponseBody注解的结合,
    * 	 RestController提供json格式的数据。
    * 2. Autowired 我们需要将Service层实例注入到Controller层,
    * 	 方便我们调用Service层方法。Autowired是Spring官方提供。
    * 	 同样作用的注解还有@Inject(JSR330规范)和@Resource(JSR250规范。
    * 3. @GetMapping("") 
    * 	 等同于( @RequestMapping(value= "", method= RequestMethod.GET) )
    * 4. @PathVariable 用于取得路径中的值,如 "/item/1" 则这时id就为1
    */

@RestController
public class ItemController {

    @Autowired
    private ItemService itemService;

    @GetMapping("/item/{id}")
    public Item getItem(@PathVariable("id") int id) {
        return itemService.queryItemById(id);
    }
}

大功告成

重新运行我们的启动类,对接口进行访问。
在这里插入图片描述
成功获取到我们的数据,本次SpringBoot微服务的搭建到这里就结束了,下次会写如何实现微服务和微服务之间如何相互调用。

你可能感兴趣的:(SpringBoot微服务的搭建)