谷粒商城笔记

1. Mybatis-plus配置:

1.1  依赖

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.2.0</version>
    </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.17</version>
            <scope>compile</scope>
        </dependency>

1.2  Application注解

@MapperScan("com/stefan/jdmall/coupon/dao")

1.3 application.yml配置

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/jdmall_sms
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml
  global-config:
    db-config:
      id-type: auto

2. Nacos

2.1 nacos service mac系统启动和关闭命令

cd到bin目录下 

sh startup.sh -m standalone

sh shutdown.sh

访问地址:

127.0.0.1:8848/nacos

http://127.0.0.1:8848/nacos/#/serviceManagement?dataId=&group=&appName=&namespace=&pageSize=&pageNo=&namespaceShowName=public&serviceNameParam=&groupNameParam=

 数据库命令:(访问数据库)

mysql -u root -p -h localhost

2.2 nacos服务注册

引入依赖:(注意对应spring-cloud和spring-boot的版本)

    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.0.1.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

服务模块配置:

spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
  application:
    name: jdmall-member
Application添加:(高版本可以省略)
@EnableDiscoveryClient

2.3 Feign

 引入依赖:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>


        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

在Member服务下创建feign文件夹,创建接口

@FeignClient("jdmall-coupon") //声明feign,和目标服务
public interface CouponFeignService {

    @RequestMapping("/coupon/coupon/member/list")
    public R memberList();
}

在Application下添加注释开启Feign功能,设置扫描路径:

@EnableFeignClients(basePackages = "com.stefan.jdmall.member.feign")

在控制器调用:

    @Autowired
    private CouponFeignService couponFeignService;

    @RequestMapping("/coupon/list")
    public R couponList(){
        MemberEntity memberEntity = new MemberEntity();
        memberEntity.setNickname("张无");

        R couponR = couponFeignService.memberList();

        return R.ok().put("member", memberEntity).put("coupon", couponR.get("coupon"));
    }

2.4 nacos配置中心

引入依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

创建文件bootstrap.properties

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=jdmall-coupon

SpringBoot 2.4.x版本之后,对于bootstrap.properties/bootstrap.yml 配置,需要加上spring-cloud-starter-bootstrap

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

 Nacos server配置中心内创建jdmall-coupon.properties,填写配置数据:(配置中心的配置数据优先于项目内application.properties文件的配置)

coupon.user.name=kk1
coupon.user.age=19

控制器内读取文件值:

    @Value("${coupon.user.name}")
    private String name;

加上注解 @RefreshScope ,可动态加载配置中心的文件,不需要重启服务器

<think>嗯,用户想要找关于谷粒商城项目的最详细笔记资料。首先,我需要回顾一下用户提供的引用内容。引用[1]提到了谷粒商城项目的学习笔记一到五,特别是第四章关于品牌管理。这可能是一个重要的部分。用户还提到了引用[2]中的检索页功能和商品详情,以及引用[3]中的Nacos配置信息。 用户的需求是找到最详细的笔记,所以我需要从这些引用中提取相关信息。首先,检查引用[1],里面提到了多个学习笔记,可能涵盖了项目的不同模块。需要指出这些笔记的章节内容,比如品牌管理、数据库设计、分布式基础等,这些可能对用户有帮助。 然后,引用[2]讨论了检索页的功能,包括商品、品牌、分类、属性的处理,以及排序、分页和导航功能。这部分内容可能属于商品服务模块,用户可能对实现细节感兴趣,比如如何整合Elasticsearch进行搜索。 引用[3]提到了Nacos的配置,这在微服务架构中很重要,尤其是在配置管理和服务发现方面。这部分信息可能位于分布式服务或配置管理的相关章节中。 接下来,用户可能需要知道如何系统地学习这个项目。因此,建议他们按照笔记的顺序从一到五逐步学习,并重点关注核心模块如商品服务、检索服务和分布式架构。此外,实践环节和配置管理也是关键部分,需要结合代码和配置进行实际操作。 另外,用户可能没有明确说出来的需求是希望了解项目的结构、技术栈以及实际应用场景。所以,在回答中应该提到项目使用的技术,如Spring Cloud、Nacos、Elasticsearch等,以及电商系统的典型模块,帮助他们理解项目的整体架构。 最后,生成相关问题时要考虑用户可能进一步询问的内容,比如项目架构设计、商品服务实现、检索服务优化、分布式事务处理以及配置管理等,这些都是深入学习的常见问题。</think>关于谷粒商城项目的详细笔记资料,根据引用内容可梳理出以下关键信息: ### 一、核心学习模块 1. **商品服务** - 品牌管理章节包含品牌增删改查、数据库设计、前后端联调实现[^1] - 属性分组与SPU/SKU管理模块,涉及商品规格参数体系设计 - 商品发布流程包括数据校验、事务控制、OSS存储集成 2. **检索服务** - 实现多条件筛选(品牌/分类/属性)、排序规则、库存状态过滤[^2] - 使用Elasticsearch构建商品检索模型,支持关键词匹配和聚合分析 - 面包屑导航与条件筛选联动逻辑开发 3. **分布式架构** - Nacos配置中心管理高优先级配置项(如服务地址、应用名称)[^3] - Spring Cloud Alibaba组件集成方案 - 多线程技术在商品详情页的应用 ### 二、详细学习路径 1. **基础篇(笔记1-3)** - 微服务环境搭建:`Spring Boot 2.3 + Spring Cloud Hoxton` - 分布式组件集成:`Nacos注册中心 → Gateway网关 → OpenFeign调用` - 数据库设计规范:`PDManer建模工具使用` 2. **进阶篇(笔记4-5)** ```java // 典型业务代码结构示例 @DistributedLock(prefix = "product:lock:") public void updateSpuStatus(SpuInfoEntity spuInfo) { // 分布式锁控制商品状态修改 } ``` - 分布式事务解决方案:`Seata AT模式` - 性能优化手段:`三级缓存设计(本地缓存+Redis+数据库)` 3. **项目实践环节** - 前端模板:`Vue + ElementUI实现管理后台` - 压力测试:`JMeter模拟秒杀场景` - 部署方案:`Docker容器化编排` ### 三、资料获取建议 1. 按笔记顺序系统学习(笔记一至五为完整知识链路) 2. 重点关注商品服务与检索服务的代码实现[^1] 3. 结合Nacos配置实践微服务治理[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值