电商项目day01

学习目标

  • 电商行业的介绍
  • 优思安商城介绍
  • 工程搭建
  • 整合测试

1.电商行业的介绍

1.1.电商行业的发展

​ 电子商务通常是指在全球各地广泛的商业贸易活动中,在因特网开放的网络环境下,基于浏览器/服务器应用方式,买卖双方不谋面地进行各种商贸活动,实现消费者的网上购物、商户之间的网上交易和在线电子支付以及各种商务活动、交易活动、金融活动和相关的综合服务活动的一种新型的商业运营模式。

​ 近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力不断增强。电子商务正在与实体经济深度融合,进入规模性发展阶段,对经济社会生活的影响不断增大,正成为我国经济发展的新引擎。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3.电商行业技术特点

  • 技术新、技术范围广
  • 分布式
  • 高并发、集群、负载均衡、高可用
  • 海量数据
  • 业务复杂
  • 系统安全

2.优思安商城介绍

2.1.电商行业的概念

B2C:商家对个人,如:京东、亚马逊、当当等

C2C:个人对个人,如:淘宝集市、拍拍网

B2B:商家对商家,如:阿里巴巴批发网、八方资源网等

O2O:线上和线下结合,如:饿了么、美团、滴滴打车等

P2P:在线金融,贷款,如:网贷之家、人人聚财等

B2C平台:天猫商城、京东商城、一号店、当等(只提供平台,不开店)拍拍 凡客

2.1.项目介绍

​ 优思安商城项目是一个综合性的B2C 商城,功能类似于淘宝、京东。用户可以在系统中通过搜索商品、查看商品详情、加入购物车、购买商品并生成订单完成购物操作。

优思安商城共分为两部分:

  1. 商城后台管理系统:

    主要实现对商品、商品分类、规格参数、CMS 等业务的处理。

  2. 商城前台系统:

    主要提供用户通过访问首页,完成购物流程的处理。
    在这里插入图片描述

3.工程搭建

3.1.技术选型

  • MyBatis3
  • Spring Boot 2.1.6.RELEASE
  • Spring Cloud Greenwich.SR2
  • Redis
  • RabbitMQ
  • Elasticsearch-6.3.2
  • nginx-1.14.2
  • FastDFS - 5.0.8
  • MyCat
  • mysql 5.5

3.2.开发环境

为了保证开发环境的统一,希望每个人都按照我的环境来配置:

  • IDE:我们使用Idea 2018.3.2 版本
  • JDK:统一使用JDK1.8
  • 项目构建:maven3.3.9以上版本即可(3.5.2)
  • 版本控制工具:git
  • 服务器:centos

3.3.域名

一级域名:www.usian.com

二级域名:www.manage.usian.com

3.4.工程搭建分析

usian_parent:父工程,打包方式pom,管理jar包的版本号

​ |–common_eureka:注册中心

​ |–common_pojo:实体类

​ |–common_mapper:mapper接口

​ |–common_utils:通用的工具类通用的pojo

​ |–usian-item-web:商品管理服务消费者

​ |–usian-item-feign:商品管理feign接口

​ |–usian-item-service:商品管理服务提供者

3.5创建usian_parent

3.5.1.创建工程

创建统一的父工程:usian_parent,用来管理依赖及其版本,注意是创建project,而不是module

在这里插入图片描述
不要选择骨架:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.5.2.pom文件

<?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.usian</groupId>
    <artifactId>usian_parent</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--Spring Boot 父工程-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
    </parent>
    <!-- 自定义属性标签 -->
    <properties>
        <mybatis-version>3.5.1</mybatis-version>
        <mysql-connector-java-version>5.1.38</mysql-connector-java-version>
        <druid-version>1.0.9</druid-version>
        <pagehelper-version>1.2.10</pagehelper-version>
        <logback-version>5.0</logback-version>
        <spring-mybats-version>2.0.1</spring-mybats-version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <!--Spring Cloud Platform-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- MyBatis -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>${mybatis-version}</version>
            </dependency>
            <!-- MySql Driver -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-connector-java-version}</version>
            </dependency>
            <!--Alibaba DataBase Connection Pool-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>${druid-version}</version>
            </dependency>
            <!--PageHelper-->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>${pagehelper-version}</version>
            </dependency>
            <!--MyBatis And Spring Integration Starter-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${spring-mybats-version}</version>
            </dependency>
            <!--Logback-->
            <dependency>
                <groupId>net.logstash.logback</groupId>
                <artifactId>logstash-logback-encoder</artifactId>
                <version>${logback-version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>
            <!--Spring Boot Maven Plugin-->
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

3.5.1.父工程的作用

为什么不在ego-parent定义所有jar包,而是定义版本号呢?

项目部署到tomcat需要打war包,如果这个项目依赖了所有的jar包则会非常大,导致传输非常慢

我们在父工程中锁定了SpringCloud等启动器的版本号,以后创建的子工程就不需要自己控制版本号了。

可以删除src目录

3.5.创建common_eureka

在这里插入图片描述

3.5.1.创建工程

在这里插入图片描述

我们的注册中心,起名为:commom_eureka

选择新建module:

不要选择骨架:

然后填写项目坐标,我们的项目名称为common_eureka:

选择安装目录,因为是聚合项目,目录应该是在父工程usian_parent的下面

3.5.2.pom.xml

添加EurekaServer的依赖:

<?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>usian_parent</artifactId>
        <groupId>com.usian</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>common_eureka</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
</project>

3.5.3.创建启动类

@SpringBootApplication
@EnableEurekaServer
public class EurekaApp{

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

3.5.4.application.yml

server:
  port: 8761 #端口号
eureka:
  client:
    register-with-eureka: false #把自己注册到eureka服务列表
    fetch-registry: false #拉取eureka服务信息

3.6.创建common_pojo

3.6.1.创建工程

在这里插入图片描述

与上面类似,选择maven方式创建Module,然后填写项目名称,我们命名为:common_pojo
填写保存的目录
在这里插入图片描述

3.7.创建common_mapper

3.7.1.创建工程

在这里插入图片描述

注意包的位置,必须是在调用者的下一级目录

3.7.2.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">
    <parent>
        <artifactId>usian_parent</artifactId>
        <groupId>com.usian</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>common_mapper</artifactId>


    <dependencies>
        <!--Pojo-->
        <dependency>
            <groupId>com.usian</groupId>
            <artifactId>common_pojo</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!-- MyBatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </dependency>
        <!-- MySql Driver -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--Alibaba DataBase Connection Pool-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>
        <!--PageHelper-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
        </dependency>
        <!--MyBatis And Spring Integration Starter-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
    </dependencies>
    <build>
        <!--资源拷贝插件-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>
</project>

3.8.创建 common_utils

在这里插入图片描述
在这里插入图片描述

3.8.1.创建工程

在这里插入图片描述

3.8.2.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">
    <parent>
        <artifactId>usian_parent</artifactId>
        <groupId>com.usian</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>common_utils</artifactId>

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

3.8.3.添加常用工具类

工具类路径:

添加常用工具类:

3.9.创建usian_item_service

3.9.1.创建工程

usian_item_service

3.9.2.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">
    <parent>
        <artifactId>usian_parent</artifactId>
        <groupId>com.usian</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>usian_item_service</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <dependency>
            <groupId>com.usian</groupId>
            <artifactId>common_mapper</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.usian</groupId>
            <artifactId>common_utils</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>

3.9.3.application.yml

spring:
  application:
    name: usian-item-service
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/usian?characterEncoding=UTF-8
    username: root
    password: 1111
    type: com.alibaba.druid.pool.DruidDataSource
server:
  port: 8090
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8761/eureka/

3.9.4.logback.xml

<?xml version="1.0" encoding="UTF-8" ?>
 <configuration>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->  
    <property name="LOG_HOME" value="${catalina.base}/logs/" />  
    <!-- 控制台输出 -->   
    <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
       <!-- 日志输出编码 -->  
        <layout class="ch.qos.logback.classic.PatternLayout">   
             <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
        </layout>   
    </appender>   
    <!-- 按照每天生成日志文件 -->   
    <appender name="RollingFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">   
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}/server.%d{yyyy-MM-dd}.log</FileNamePattern>   
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>   
        <layout class="ch.qos.logback.classic.PatternLayout">  
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
       </layout> 
        <!--日志文件最大的大小-->
       <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
         <MaxFileSize>10MB</MaxFileSize>
       </triggeringPolicy>
    </appender>     
    
	 <!--myibatis log configure-->
	
    <!-- 日志输出级别 -->
    <root level="DEBUG">   
        <appender-ref ref="Stdout" />   
        <appender-ref ref="RollingFile" />   
    </root> 



<!--日志异步到数据库 -->  
<!--     <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
        日志异步到数据库 
        <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
           连接池 
           <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
              <driverClass>com.mysql.jdbc.Driver</driverClass>
              <url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
              <user>root</user>
              <password>root</password>
            </dataSource>
        </connectionSource>
  </appender> -->

</configuration>

3.9.5.创建启动类

@SpringBootApplication
@EnableDiscoveryClient
@MapperScan("com.usian.mapper")
public class ItemServiceApp {
    public static void main(String[] args) {
        SpringApplication.run(ItemServiceApp.class, args);
    }
}

3.10.创建usian_item_feign

3.10.1.创建工程

在这里插入图片描述

注意包的位置,必须是在调用者的下一级目录
在这里插入图片描述

usian_item_feign

3.11.2.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">
    <parent>
        <artifactId>usian_parent</artifactId>
        <groupId>com.usian</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>usian_item_feign</artifactId>

    <dependencies>
        <!--Spring Cloud OpenFeign Starter -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>com.usian</groupId>
            <artifactId>common_pojo</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>

3.11.创建usian_item_web

在这里插入图片描述
在这里插入图片描述## 标题

3.11.1.创建工程

usian_item_web

3.11.2.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">
    <parent>
        <artifactId>usian_parent</artifactId>
        <groupId>com.usian</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>usian_item_web</artifactId>
    <dependencies>
        <dependency>
            <groupId>com.usian</groupId>
            <artifactId>usian_item_feign</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>
</project>

3.11.3.application.yml

spring:
  application:
    name: usian-item-web
server:
  port: 8091
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8761/eureka/

3.11.4.logback.xml

<?xml version="1.0" encoding="UTF-8" ?>
 <configuration>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->  
    <property name="LOG_HOME" value="${catalina.base}/logs/" />  
    <!-- 控制台输出 -->   
    <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
       <!-- 日志输出编码 -->  
        <layout class="ch.qos.logback.classic.PatternLayout">   
             <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
        </layout>   
    </appender>   
    <!-- 按照每天生成日志文件 -->   
    <appender name="RollingFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">   
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}/server.%d{yyyy-MM-dd}.log</FileNamePattern>   
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>   
        <layout class="ch.qos.logback.classic.PatternLayout">  
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
       </layout> 
        <!--日志文件最大的大小-->
       <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
         <MaxFileSize>10MB</MaxFileSize>
       </triggeringPolicy>
    </appender>     
    
	 <!--myibatis log configure-->
	
    <!-- 日志输出级别 -->
    <root level="DEBUG">   
        <appender-ref ref="Stdout" />   
        <appender-ref ref="RollingFile" />   
    </root> 



<!--日志异步到数据库 -->  
<!--     <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
        日志异步到数据库 
        <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
           连接池 
           <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
              <driverClass>com.mysql.jdbc.Driver</driverClass>
              <url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
              <user>root</user>
              <password>root</password>
            </dataSource>
        </connectionSource>
  </appender> -->

</configuration>

3.11.5.创建启动类

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ItemWebApp {
    public static void main(String[] args) {
        SpringApplication.run(ItemWebApp.class, args);
    }
}

3.12.工程搭建测试

我们分别启动:common_eureka,usian_item_service,usian_item_web

4.整合测试

4.1.需求

根据商品id查询商品信息,并将商品信息使用json数据返回。

4.2.分析

请求的url:/frontend/item/selectItemInfo?itemId=536563

参数:商品id,从请求的url中获得

返回值:TbItem对象,逆向工程生成的pojo(响应json数据)

4.3.创建数据库并导入sql

优思安商城sql文件目录:
在这里插入图片描述

导入sql文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B1r3LAG3-1615815326774)(assets\1586854689037.png)]

4.4.逆向工程的使用

逆向工程目录:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5tAyLuOb-1615815326775)(assets\1586854734391.png)]

导入逆向工程:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gpxY1RFb-1615815326775)(assets\1586854818335.png)]

选中我们的工程:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AJV0eNl0-1615815326777)(assets\1586854943096.png)]

选择在新窗口打开:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d434HKEF-1615815326778)(assets\1586856425338.png)]

生成pojo和mapper,并拷贝到工程中:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ny6jXJn-1615815326779)(assets\1586855103295.png)]

4.5.usian_item_service

4.5.1.service

package com.usian.service;

import com.usian.mapper.TbItemMapper;
import com.usian.pojo.TbItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
@Transactional
public class ItemServiceImpl implements ItemService {

	@Autowired
	private TbItemMapper tbItemMapper;

	@Override
	public TbItem selectItemInfo(Long itemId) {
		return tbItemMapper.selectByPrimaryKey(itemId);
	}
}

4.5.2.controller

package com.usian.controller;

import com.usian.pojo.TbItem;
import com.usian.service.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/service/item")
public class ItemController {
    @Autowired
    private ItemService itemService;

    /**查询商品信息
     * 根据商品id
     * @param itemId
     * @return
     */
    @RequestMapping("/selectItemInfo")
    public TbItem selectItemInfo(Long itemId){
        return this.itemService.selectItemInfo(itemId);
    }

}

4.6.usian_item_feign

4.6.1.feign

package com.usian.feign;

import com.usian.pojo.TbItem;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(value = "usian-item-service")
public interface ItemServiceFeign {

    @RequestMapping("/service/item/selectItemInfo")
    TbItem selectItemInfo(@RequestParam("itemId") Long itemId);
}

4.7.usian_item_web

4.7.1.controller

package com.usian.controller;

import com.usian.feign.usianItemServiceFeignClient;
import com.usian.pojo.TbItem;
import com.usian.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/backend/item")
public class ItemController {
    @Autowired
    private ItemServiceFeign itemServiceFeign;

    /**
     * 查询商品基本信息
     */
    @RequestMapping("/selectItemInfo")
    public Result selectItemInfo(Long itemId) {
        TbItem tbItem = itemServiceFeign.selectItemInfo(itemId);
        if (tbItem != null) {
            return Result.ok(tbItem);
        }
        return Result.error("查无结果");
    }
}

4.8.测试

在Postman测试商品查询结果:http://127.0.0.1:8091//frontend/item/selectItemInfo?itemId=536563

在这里插入图片描述

4.9 控制台输出打印sql日志

#控制台输出打印日志
logging:
  level:
    com.usian.mapper: debug
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值