ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

微服务解决方案---SpringCloud Netflix

2021-08-19 10:01:14  阅读:151  来源: 互联网

标签:procl String Netflix SpringCloud commons private --- import com


SpringCloud Netflix介绍

SpringCloud 核心技术

SpringCloud Demo

新建maven项目springcloud-demo,pom.xml:

<?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.procl</groupId>
    <artifactId>springcloud-demo</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
   <!-- SpringBoot:parent -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.9.RELEASE</version>
    </parent>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- Eureka -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!-- openfeign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

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

        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.8.0</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.8.0</version>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!-- springcloud版本管理 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR11</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

在springcloud-demo下新建module sp-commons

<?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">
    <parent>
        <artifactId>springcloud-demo</artifactId>
        <groupId>com.procl</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>sp-commons</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- lombok -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.26</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

</project>

在sp-commos下新建类

com.procl.commos.pojo.User

package com.procl.commons.pojo;

import lombok.Data;
import lombok.experimental.Accessors;


@Data
@Accessors(chain = true)
public class User {
    private Long userId;
    private String userName;
    private String passWord;
    private Integer score;
    private String salt;
    private Integer role;
}

com.procl.commos.pojo.Product

package com.procl.commons.pojo;

import lombok.Data;
@Data
public class Product {
    private Long productId;
    private String productName;
    private Long productStore;
}

com.procl.commos.pojo.Order

package com.procl.commons.pojo;

import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;

@Data
@Accessors(chain = true)
public class Order {
    private Long id;
    private String orderId;
    private Long userId;
    private Long productId;
    private Integer productNum;
    private Date created;
}

com.procl.commos.pojo.ProductOrder

package com.procl.commons.pojo;

import lombok.Data;

@Data
public class ProductOrder {
    private Long productId;
    private Integer productNum;
}

com.procl.commons.config.SwaggerConfig

package com.procl.commons.config;

import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2
@Configuration
public class SwaggerConfig {
    /**
     * Swagger2的配置
     *
     * @return docket
     */
    public Docket createDocket() {
        ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder();
        ApiInfo apiInfo = apiInfoBuilder.title("接口文档").build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2);

        docket.apiInfo(apiInfo);
        docket.select().apis(RequestHandlerSelectors.any());
        return docket;
    }
}

com.procl.commons.web.JsonResult

package com.procl.commons.web;

import jdk.nashorn.internal.objects.annotations.Constructor;
import lombok.Data;
import org.springframework.boot.context.properties.ConstructorBinding;


@Data
public class JsonResult {
    private Integer state = 1;
    private String message;
    private Object data;

    public JsonResult(Object data){
        this.data = data;
    }

    public JsonResult() {
    }

    public JsonResult(Exception e){
        this.state = 0;
        this.message = e.getMessage();
    }
}

com.procl.commons.service.UserService

package com.procl.commons.service;

import com.procl.commons.pojo.User;

import java.util.List;

public interface UserService {
    //获取用户
    User getUserByUserId(Long userId);

    List<User> getAllUser();

    //增加用户积分
    int addScore(Long userId,Integer score);

    String register(String userName,String passWord);

    String login(String userName,String passWord);
}

com.procl.commons.service.ProductService

package com.procl.commons.service;

import com.procl.commons.pojo.Product;
import com.procl.commons.pojo.ProductOrder;

import java.util.List;

public interface ProductService {

    //获取一个订单的商品列表
    List<Product> getProducts();

    //减少商品库存
    int decreaseStore(ProductOrder productOrder);

    Integer getProductNum(Long productId);
}

com.procl.commons.service.OrderService

package com.procl.commons.service;

import com.procl.commons.pojo.Order;
import com.procl.commons.pojo.ProductOrder;

import java.util.List;


public interface OrderService {
    //获取订单
    List<Order> getOrder(String orderId);
    //添加订单
    int insertOrder(List<ProductOrder> productOrderList);

    List<Order> getAllOrder();
}

 

标签:procl,String,Netflix,SpringCloud,commons,private,---,import,com
来源: https://www.cnblogs.com/procl/p/15160311.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有