基于Spring Cloud的电商系统设计与实现——用户与商品模块的研究(上)

news2024/10/18 20:57:00

操作系统:Windows

Java开发包:JDK1.8

项目管理工具:Maven3.6.0

项目开发工具:IntelliJIDEA

数据库:MySQL

Spring Cloud版本:Finchley.SR2

Spring Boot版本:2.0.6.RELEASE

目录

  • 用户模块—user-service
  • 商品模块—goods-service
  • 数据库设计
  • EurekaServer与公共工程的搭建
  • 搭建Eureka Server
    • 步骤1:创建项目,引入依赖
    • 步骤2:添加Eureka的相关配置
    • 步骤3:定义Security安全控制
    • 步骤4:在项目启动类添加注解
    • 步骤5:测试运行
  • 搭建公共工程
    • 步骤1:创建公共工程模块
    • 步骤2:创建与数据库中各张表对应的实体类
    • 步骤3:将Module项目打成jar包到Maven仓库
  • 用户模块实现
    • 步骤2:在全局配置文件application.yml中添加Eureka、MySQL以及MyBatis的相关配置
    • 步骤3:在项目启动类添加@EnableEurekaClient注解
  • 搭建user-consumer
    • 步骤1:创建项目,引入依赖
    • 步骤2:在全局配置文件application.yml中添加Eureka和Thymeleaf的相关配置信息
  • 用户登录功能
    • 步骤1:在工程user-provider中定义用户登录接口
    • 步骤2:在工程user-consumer中调用user-provider中的接口实现用户登录功能
    • 步骤3:启动测试登录功能
  • 用户注册功能
    • 步骤1:在工程user-provider中定义用户注册接口
    • 步骤2:在工程user-consumer中调用user-provider中的接口实现用户注册功能

此电商系统包含了用户与商品两个模块的部分功能,用户模块包括用户注册、用户登录;商品模块包括商品展示、商品详情、购物车以及订单。
在这里插入图片描述

开发项目之前,有必要根据项目业务进行分析,设计一套合理的架构。

本系统采用的是Spring Cloud微服务架构,根据业务功能将系统划分为5个服务,这5个服务构成了一套完整的微服务系统。其中,2个服务是基础服务,提供了一套服务治理的功能,它们分别是Eureka Server和网关服务;2个服务是资源服务,分别是用户服务和商品服务,对外暴露API接口,除此之外,还有一个common的工程,为资源服务提供基本的工具类。
在这里插入图片描述

浏览器访问服务端时,首先会经过网关,网关会根据请求路由到不同的服务,并且每个服务都会从不同的MySQL数据库获取数据。

用户模块—user-service

在这里插入图片描述

商品模块—goods-service

在这里插入图片描述

数据库设计

1.用户模块
在这里插入图片描述

/*创建数据库webuser*/

CREATE DATABASE webuser;




/*8.0以下版本MySQL执行以下SQL修改字符编码*/

alter database webuser character set utf8;

set names gbk;



/*使用数据库webuser*/

USE webuser;



/*创建表user*/

CREATE TABLE user (

  uaccount int(11) AUTO_INCREMENT PRIMARY KEY,

  upassword varchar(255) NOT NULL ,

  uname varchar(255) NOT NULL,

  usex varchar(50) 

) ;



/*向user表插入数据 */

insert  into user(uaccount,upassword,uname,usex) 

values 

(10018,'123','rose','女'),

(10019,'123','jake','男'),

(10020,'123','张三','男'),

(10021,'1','李四','男'),

(10022,'1','李明','男'),

(10023,'2','whhh','男'),

(10024,'1','王五','女'),

(10025,'1','hh','女');

2.商品模块
在这里插入图片描述

/*创建数据库webgoods*/

CREATE DATABASE webgoods;



/*8.0以下版本MySQL执行以下SQL修改字符编码*/

alter database webgoods character set utf8;

set names gbk;



/*使用数据库webgoods*/

USE webgoods;



/*创建数据表goods*/

CREATE TABLE goods (

  gid int(11)  AUTO_INCREMENT PRIMARY KEY,

  gname varchar(255) ,

  gdetails varchar(255) ,

  gprice int(11)

) ;



/*向goods表插入数据*/

insert  into goods(gid,gname,gdetails,gprice) 

values 

(1,'草莓','可口草莓',4),

(2,'苹果','红富士苹果',2),

(3,'橙子','金黄的大橙子',4),

(4,'葡萄','吐鲁番葡萄',12),

(5,'大虾','山东大虾',5),

(6,'带鱼','好吃的带鱼',50),

(7,'扇贝','大神快来快来',20),

(8,'皮皮虾','啥的客户',10),

(9,'脉动','不在状态,脉动一下',4),

(10,'汽水','栓双',8),

(11,'沙棘汁','好喝',3),

(12,'和其正','dsa asd',5),

(13,'菠菜','大',2),

(14,'生菜','asdajlskdja',2),

(15,'番茄','好吃',1),

(16,'胡萝卜','asdkjlajkld',2);

EurekaServer与公共工程的搭建

使用SpringInitializr方式创建一个项目web-store:

后面其他项目均在父工程中创建模块Moudle的方式创建,结构如下:
在这里插入图片描述

搭建Eureka Server

搭建eureka-server作为服务中心,是每个Spring Cloud微服务的心脏,所有服务将会注册到Eureka Server中。

步骤:

1.创建项目,引入依赖

2.添加Eureka相关配置

3.定义Security安全控制

4.添加@EnableEurekaServer注解

5.测试运行

步骤1:创建项目,引入依赖

在父工程web-store中创建Moudle,使用Spring Initializr方式创建一个名称为eureka-server的Spring Boot模块,将Artifact命名为eureka-server,在pom.xml文件中添加Eureka Server和Security依赖。

<dependency>

	<groupId>org.springframework.cloud</groupId>

	<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

</dependency>

<dependency>

	<groupId>org.springframework.cloud</groupId>

	<artifactId>spring-cloud-starter-security</artifactId>
	 <version>2.0.0.RELEASE</version>

</dependency>

注:记得修改SpringBoot版本号,添加SpringCloud版本号,要匹配。添加管理依赖。(后面每次新创建项目同)

步骤2:添加Eureka的相关配置

在全局配置文件application.yml中添加Eureka的相关配置信息,和Security的安全配置信息。
在这里插入图片描述

遇到这种情况
在这里插入图片描述
点击reload in ‘GBK’,ok
在这里插入图片描述

步骤3:定义Security安全控制

创建csrf包,csrf包下创建Security安全配置类WebSecurityConfig,该类定义了Security的安全控制。
在这里插入图片描述

步骤4:在项目启动类添加注解

@EnableEurekaServer注解

在项目启动类EurekaServerApplication上添加@EnableEurekaServer注解开启Eureka Server功能。
在这里插入图片描述

步骤5:测试运行

在这里插入图片描述

  1. yml的语法格式有误

这是最先考虑的问题,办法只有一个,就是校验yml语法,仔细检查看看,不多说了。

  1. application.yml文件格式问题

如果你的项目没有配置错误,配置文件名称也正常,还出现这个问题,那一定是你的yml文件编码的问题。

因为这个文件的编码格式是GBK,项目的编码格式是UTF-8,里面有注释,注释乱码,导致编译失败。

办法如下:

IDEA打开路径:File --> Settings --> File Encodings,然后将 /application.yml 的便面格式改成与项目一致,即:UTF-8;
保险起见,将“Project Encoding”也都改成UTF-8;
重启IDEA,然后启动项目,OK啦。
在这里插入图片描述
在这里插入图片描述
或者在 spring. freemarker.charset: utf-8
在这里插入图片描述

启动eureka-server项目,在浏览器中访问http://localhost:8001。首先会跳转到登录认证页面,输入application.yml中配置的用户名密码登录。
在这里插入图片描述

搭建公共工程

在用户模块中会有user-provider与user-consumer,我们需要在两个项目中都编写User实体类,会有很多重复性代码,这时,就需要把User实体类存放在公共项目中,并以Jar的形式打包到Maven仓库,方便提供者与消费者调用

步骤1:创建公共工程模块

在父工程web-store中使用Spring Initializr方式新建公共工程Moudle项目common,将Group命名为com.bushuo,将Artifact命名为common。

步骤2:创建与数据库中各张表对应的实体类

在公共工程common中创建entity包,并在该包中创建User实体类、Goods实体类。
在这里插入图片描述

在这里插入图片描述
点击右键,Generate
在这里插入图片描述
点击Getter and Setter,然后全部选中。就OK了
在这里插入图片描述
注:实体类中属性名与对应数据表中字段名要相同,且类型对应

步骤3:将Module项目打成jar包到Maven仓库

选择IEDA工具右侧的MAVEN→common→Lifecyle,双击Lifecyle中的install进行打包。打包完成后,会在工程common的target目录下生成刚刚打包的jar。

我出现了打包测试异常
在这里插入图片描述
在这里插入图片描述

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>

                <configuration>
                    <skipTests>true</skipTests> <!-- 不会编译测试 -->
                </configuration>
            </plugin>

在去clean,然后install
在这里插入图片描述

用户模块实现

搭建user-provider
步骤1:创建项目,引入依赖

在父工程web-store中创建Moudle,使用Spring Initializr方式创建一个名称为user-provider的Spring Boot项目,将Artifact命名为user-provider,添加Web、Eureka Client、MyBatis、公共实体类common、MySQL依赖。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.bushuo</groupId>
    <artifactId>user-provider</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>user-provider</name>
    <description>Demo project for Spring Boot</description>
    <url/>

    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <!--web启动依赖-->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <!--mybatis依赖-->

        <dependency>

            <groupId>org.mybatis.spring.boot</groupId>

            <artifactId>mybatis-spring-boot-starter</artifactId>

            <version>2.0.1</version>

        </dependency>

        <!--eureka依赖-->

        <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

        </dependency>

        <!--mysql依赖-->

        <dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
            <scope>runtime</scope>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>

        <dependencies>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-dependencies</artifactId>

                <version>Finchley.SR2</version>

                <type>pom</type>

                <scope>import</scope>

            </dependency>

        </dependencies>

    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

注:若MySQL驱动依赖报红,则加一行版本号重新下载:

5.x的MySQL选择:5.x.x

8.x的MySQL选择:8.x.x

步骤2:在全局配置文件application.yml中添加Eureka、MySQL以及MyBatis的相关配置

在这里插入图片描述
注:

8.0以下MySQL驱动名:com.mysql.jdbc.Driver

8.0以上MySQL驱动名:com.mysql.cj.jdbc.Driver

步骤3:在项目启动类添加@EnableEurekaClient注解

在项目启动类上添加@EnableEurekaClient注解开启Eureka Client功能。

搭建user-consumer

步骤1:创建项目,引入依赖

在父工程web-store中创建Moudle,使用Spring Initializr方式创建一个名称为user-consumer的Spring Boot项目,将Artifact命名为user-consumer,添加Web、Eureka Client、公共实体类common、Feign、Thymeleaf、Hystrix等依赖。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.bushuo</groupId>
    <artifactId>user-consumer</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>user-consumer</name>
    <description>Demo project for Spring Boot</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>1.8</java.version>

    </properties>
    <dependencies>
        <!--feign依赖-->

        <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-openfeign</artifactId>

            <version>2.0.0.RELEASE</version>

        </dependency>

        <!--web依赖-->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <!--eureka依赖-->

        <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

        </dependency>

        <!--thymeleaf前端模板依赖-->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-thymeleaf</artifactId>

            <version>2.0.0.RELEASE</version>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

        </dependency>

        <!--hystrix熔断依赖-->

        <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>

            <version>2.0.0.RELEASE</version>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>

        <dependencies>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-dependencies</artifactId>

                <version>Finchley.SR2</version>

                <type>pom</type>

                <scope>import</scope>

            </dependency>

        </dependencies>

    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

步骤2:在全局配置文件application.yml中添加Eureka和Thymeleaf的相关配置信息

在这里插入图片描述
步骤3:在项目启动类添加@EnableEurekaClient和@EnableFeignClients注解

在项目启动类上添加@EnableEurekaClient注解开启Eureka Client功能,添加@EnableFeignClients注解开启Feign功能。
在这里插入图片描述

用户登录功能

步骤:

1.在工程user-provider中定义用户登录接口

2.user-consumer调用user-provider中的接口实现用户登录功能
3. 启动测试用户登录功能

步骤1:在工程user-provider中定义用户登录接口

(1)在dao包的UserDao接口中,添加用户登录的方法
在这里插入图片描述

(2)在resources下的mapper包中的UserMapper.xml文件中配置用户登录访问接口
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">



<mapper namespace="com.bushuo.userprovider.Dao.UserDao">



    <select id="login" resultType="com.bushuo.common.entity.User"

            parameterType="java.lang.String">

        select * from user where uname=#{uname} and upassword=#{upassword}

    </select>



</mapper>

(3)在controller包中的UserController类中添加登录接口
在这里插入图片描述
user-consumer程序结构:

步骤2:在工程user-consumer中调用user-provider中的接口实现用户登录功能

先构造相同结构
在这里插入图片描述

(1)在UserService接口中编写Feign组件调用user-provider中接口的登录方法

在这里插入图片描述
(2)在UserServiceHystrix类中编写处理用户登录的熔断处理逻辑
在这里插入图片描述
(3)在UserController类中添加处理用户登录时跳转登录界面的请求/tologin
在这里插入图片描述
注:采用 @Controller 注解将该类标识为控制器层的组件。与 @RestController 不同,@Controller 的方法返回值为 String 类型时,默认会被视为视图名称。结合在 application.yml 文件中配置的前端页面路径,方法可以返回 templates 目录中的 login.html 页面进行渲染。

(4)在UserController类中添加处理用户登录的请求
在这里插入图片描述
(5)在resources下的templates目录中创建静态页面
login.html:

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>登录页面</title>

</head>

<body>

<h1 align="center">登录页面</h1>

<div style="width:100%;text-align:center">

    <form action="http://localhost:8003/admin/login" method="get">

        <p>用  户: <input type="text" id="userName" name="uname"  /></p>

        <p>密  码: <input type="password" id="password" name="upassword" /></p>

        <p><input type="submit" value="登录">

           <input type="reset" value="重置"></p>

    </form>

    没有账号?<a href="http://localhost:8003/admin/toregister">去注册</a>

</div>

</body>

</html>

wecomle.html:
在这里插入图片描述

步骤3:启动测试登录功能

启动eureka-server、user-provider和user-consumer,使用浏览器访问localhost:8003/admin/tologin。
在这里插入图片描述

用户注册功能

步骤1:在工程user-provider中定义用户注册接口

(1)在dao包的UserDao接口中,添加用户注册的方法
在这里插入图片描述
(2)在resources下的mapper包中的UserMapper.xml文件中配置用户注册访问接口
在这里插入图片描述
(3)在controller包中的UserController类中添加注册接口
在这里插入图片描述

 @RequestMapping(value = "/register",method = RequestMethod.GET)
    public int register(@RequestParam(value ="upassword" )String upassword,@RequestParam(value ="uname" )String uname,@RequestParam(value ="usex" )String usex){
        return userDao.register( upassword,uname,usex );
    }

步骤2:在工程user-consumer中调用user-provider中的接口实现用户注册功能

(1)在UserService接口中编写Feign组件调用user-provider中接口的注册方法
在这里插入图片描述

(2)在UserServiceHystrix类中编写处理用户注册的熔断处理逻辑

在这里插入图片描述

(3)在UserController类中添加处理用户注册时跳转注册界面的请求/toregister

在这里插入图片描述

(4)在UserController类中添加处理用户注册的请求
在这里插入图片描述

(5)在resources下的templates目录中创建静态页面

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>注册页面</title>

</head>

<body>

<h1 align="center">注册页面</h1>

<div style="width:100%;text-align:center">

    <form action="http://localhost:8003/admin/register" method="get">

        <p>用  户: <input type="text" id="userName" name="uname"  /></p>

        <p>密  码: <input type="password" id="password" name="upassword" /></p>
        <p>确认密码: <input type="password" id="upassword" name="upassword" /></p>
        <p>性   别: <input type="text" id="sex" name="usex" /></p>
        <p><input type="submit" value="注册">

            <input type="reset" value="重置"></p>

    </form>

    已有账号?<a href="http://localhost:8003/admin/toregister">去登录</a>

</div>
<script>
    document.querySelector('form').addEventListener('submit', function(event) {
        const password = document.getElementById('password').value;
        const confirmPassword = document.getElementById('confirmPassword').value;
        if (password !== confirmPassword) {
            alert('密码和确认密码不匹配!');
            event.preventDefault(); // 阻止表单提交
        }
    });
</script>

</body>

</html>

步骤3:启动测试登录功能

启动eureka-server、user-provider和user-consumer,使用浏览器访问注册页面:http://localhost:8003/admin/toregister在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2218012.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习-RBF

径向基函数内核 – 机器学习 内核在将数据转换为更高维空间方面发挥着重要作用,使算法能够学习复杂的模式和关系。在众多的内核函数中,径向基函数(RBF)内核作为一种多功能且强大的工具脱颖而出。在本文中,我们深入探讨了RBF内核的复杂性,探讨了它的数学公式、直观理解、…

【分布式知识】MapReduce详细介绍

文章目录 MapReduce概述1. MapReduce编程模型Map阶段Reduce阶段 2. Shuffle和Sort阶段3. MapReduce作业的执行流程4. MapReduce的优化和特性5. MapReduce的配置和调优 MapReduce局限性相关文献 MapReduce概述 MapReduce是一个分布式计算框架&#xff0c;它允许用户编写可以在大…

使用串口中断接收时遇到的小问题(单字节接收,固定多字节接收,不定长字节接收)

单字节接收 在cubemx初始化串口1&#xff0c;打开串口中断 在usart。c文件中修改中断回调函数 //串口接收回调函数 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if( huart &huart1)//判断中断源 { if(g_ucUsart1ReceiveData 0x01) { …

Java使用原生HttpURLConnection实现发送HTTP请求

1、HttpURLConnection 类的介绍 HttpURLConnection 是 Java 提供的原生标准的用于发送 HTTP 请求和接收 HTTP 响应的一个类&#xff0c;它位于 java.net 包下&#xff0c;并继承了 URLConnection 类。 HttpURLconnection 是基于 HTTP 协议的&#xff0c;支持 get&#xff0c;…

Flink有状态计算

前言 状态是什么&#xff1f;状态就是数据&#xff0c;准确点说&#xff0c;状态是指 Flink 作业计算时依赖的历史数据或中间数据。如果一个 Flink 作业计算依赖状态&#xff0c;那它就是有状态计算的作业&#xff0c;反之就是无状态计算的作业。 举个例子&#xff0c;服务端…

【高阶数据结构】揭开红黑树‘恶魔’的面具:深度解析底层逻辑

高阶数据结构相关知识点可以通过点击以下链接进行学习一起加油&#xff01;二叉搜索树AVL树 大家好&#xff0c;我是店小二&#xff0c;欢迎来到本篇内容&#xff01;今天我们将一起探索红黑树的工作原理及部分功能实现。红黑树的概念相对抽象&#xff0c;但只要我们一步步深入…

单链表算法题(二)(超详细版)

前言 : 通过算法题 &#xff0c; 学习解决问题的思路 &#xff0c; 再面对类似的算法题时 &#xff0c; 能快速定位解决方案 一 . 链表的回文结构 链表的回文结构 : 链表的回文结构_牛客题霸_牛客网 思路一 : 创建新链表 &#xff0c; 对原链表进行反转&#xff0c;结果存储在…

计算机毕业设计Python深度学习房价预测 房源可视化 房源爬虫 二手房可视化 二手房爬虫 递归决策树模型 机器学习 深度学习 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 房地产是促进我国经济持续增…

Google play开发者账号被封,申诉就有机会,别不信

在谷歌上架&#xff0c;开发者账号被封对很多开发者来说已经是家常便饭了&#xff0c;虽说一直都有在流传申诉没有用。别灰心啊&#xff0c;申诉就有机会&#xff0c;不少开发者都申诉成功了。 尤其是用一个少一个、价值好几个w的老号&#xff0c;不申诉就认栽实在是太亏了&…

Bootstrap 弹出框(Popover)插件

弹出框&#xff08;Popover&#xff09;与工具提示&#xff08;Tooltip&#xff09;类似&#xff0c;提供了一个扩展的视图。如需激活弹出框&#xff0c;用户只需把鼠标悬停在元素上即可。弹出框的内容完全可使用 Bootstrap 数据 API&#xff08;Bootstrap Data API&#xff09…

Mysql底层原理详细剖析

1. 索引数据结构 索引是帮助mysql 是帮助数据排序 且高效获取数据的数据结构 索引的数据结构有&#xff1a; 二叉树红黑树hash表b树 1.1 二叉查找树 二叉查找树 如果要查找&#xff0c;通过二分查找的复杂度进行查找数据&#xff0c;确实优化了性能&#xff0c;减少了io的…

【中危】Oracle TNS Listener SID 可以被猜测

一、漏洞详情 Oracle 打补丁后&#xff0c;复测出一处中危漏洞&#xff1a;Oracle TNS Listener SID 可以被猜测。 可以通过暴力猜测的方法探测出Oracle TNS Listener SID&#xff0c;探测出的SID可以用于进一步探测Oracle 数据库的口令。 建议解决办法&#xff1a; 1. 不应该使…

机器学习—特性缩放

特性缩放的技术能使梯度下降运行得更快&#xff0c;让我们先来看看功能大小之间的关系&#xff0c;这就是该特性的数字和相关参数的大小&#xff0c;作为一个具体的例子&#xff0c;让我们用两个特征来预测房子的价格&#xff0c;X1代表一个房子的大小&#xff0c;X2代表两个卧…

python爬取themoviedb电影网站信息

python爬取themoviedb电影网站信息 一、寻找数据接口二、解析主页数据,获取详情页url三、向详情页url发送请求、获取并解析数据四、完整代码一、寻找数据接口 打开网站首页,F12打开开发者工具,刷新页面。 向下滑动页面,点击页面上的“Load More”图标。 寻找到数据接口,…

掘金2.计算位置 x 到 y 的最少步数(简单01)

public class Main {public static int solution(int xPosition, int yPosition) {int diff (yPosition - xPosition);// 计算差值if(diff < 0)diff * -1;int steps 0; // 初始化步数int begin 0;// 初始化当前位置int step 1;//初始化步长// 循环直到到达目标位置while…

DSVPN简介与应用

目录 简介 DSVPN 封装模式 Nomal&#xff08;动态&#xff09;方式建立DSVPN 一、配置缺省包过滤 二、划分区域&#xff08;以总部为例&#xff09; 三、配置IP地址&#xff08;以R1为例&#xff09; 四、配置DSVPN 简介 DSVPN DSVPN&#xff08;Dynamic Secure Vir…

一种3D打印跑车模型LED安全夜灯

我学习入门单片机及3Dmax的副产品&#xff0c;小玩意。MCU用8脚的就好&#xff0c;多脚功能复用&#xff0c;涉及长短按中断、ADC、掉电唤醒及LED切换控制&#xff0c;硬件的充放电监控及光控等等麻雀虽小五脏俱全。发使用指南不是广告&#xff0c;感觉这样才能毫无遗漏的说明其…

动态规划(1)斐波那契数列模型

动态规划算法流程&#xff1a; 1、状态表示&#xff1a; 指的是dp&#xff08;dynamic programming&#xff09;表里面的值所表示的含义 如何得出&#xff1a;1、题目要求 2、经验题目要求 3、分析问题的过程中发现重复子问题 2、状态转移方程 dp[i]等于什么 3、初始化 保证…

RAG拉满-上下文embedding与大模型cache

无论怎么选择RAG的切分方案&#xff0c;仍然切分不准确。 最近&#xff0c;anthropics给出了补充上下文的embedding的方案&#xff0c;RAG有了新的进展和突破。 从最基础的向量查询&#xff0c;到上下文embedding&#xff0c;再到rerank的测试准确度都有了明显的改善&#xf…

【无标题】如何在Costura.Fody生成时排除掉某些dll

有个场景需要排除掉某些dll让他不要打包到exe中,这样做,修改FodyWeavers.xml