整合Spingboot+Redis+Shiro,打造一个电商网站

该博客介绍了Spring项目的完整搭建过程。首先导入SQL文件,接着点击新建项目并按步骤配置相关信息。然后进行环境部署,包括配置pom.xml、项目结构、属性文件和导入静态资源。最后启动Redis和项目,还提及了异常处理、拦截器和过滤器的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:导入数据

导入sql文件
在这里插入图片描述

二:创建项目

  1. 点击Create New Project新建项目
    在这里插入图片描述
  2. 左边选中Spring Initializr,直接下一步
    在这里插入图片描述
  3. GroupId: 填写项目组的名字, ArtifactId: 填写项目的名字
  4. 左边选中 Web,右边选中 Web
    在这里插入图片描述
  5. 项目路径选择,完成

在这里插入图片描述

二:部署环境

1. 配置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.lh</groupId>
    <artifactId>hgmall</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>hgmall</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.esotericsoftware/kryo -->
        <!--<dependency>-->
            <!--<groupId>com.esotericsoftware</groupId>-->
            <!--<artifactId>kryo</artifactId>-->
            <!--<version>4.0.0</version>-->
        <!--</dependency>-->

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</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>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <!-- springboot tomcat 支持 -->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <!--<version>1.3.0.RELEASE</version>-->
            <scope>provided</scope>
            <!--<scope>compile</scope>-->
        </dependency>
        <!-- thymeleaf -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!-- jpa-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!-- redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!-- thymeleaf legacyhtml5 模式支持 -->
        <dependency>
            <groupId>net.sourceforge.nekohtml</groupId>
            <artifactId>nekohtml</artifactId>
            <version>1.9.22</version>
        </dependency>
        <!-- 测试支持 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- 分页 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.6</version>
        </dependency>
        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- tomcat的支持.-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <!--<version>7.0.82</version>-->
            <version>8.5.23</version>
            <scope>provided</scope>
        </dependency>
        <!-- 热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <!-- mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.21</version>
        </dependency>
        <!-- commons-lang -->
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <!-- shiro -->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!-- hsqldb -->
        <dependency>
            <groupId>org.hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
        </dependency>
        <!-- elastic search -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        </dependency>
        <!-- 用了 elasticsearch 就要加这么一个,不然要com.sun.jna.Native 错误 -->
        <dependency>
            <groupId>com.sun.jna</groupId>
            <artifactId>jna</artifactId>
            <version>3.0.9</version>
        </dependency>
    </dependencies>

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

</project>

2. 配置基本的项目结构

(1)在项目包下创建bean包以及相关的实体类

根据自定义的数据库,创建每个表对应的实体类以及相关的属性、getXX()和setXX()方法
在这里插入图片描述

(2)创建DAO包以及相应的dao接口

DAO 类集成了 JpaRepository,就提供了CRUD和分页 的各种常见功能。
在这里插入图片描述

(3)创建service包以及相应的service类

在这里插入图片描述

(4)创建controller包以及网站每个功能对应的controller类

在这里插入图片描述

(5)编写启动类

在这里插入图片描述

(7)配置异常处理、拦截器、过滤器
创建exception包并编写异常处理类

主要是在处理删除父类信息的时候,因为外键约束的存在,而导致违反约束
在这里插入图片描述

创建filter包、realm包,配置shiro

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

创建interceptor包并编写拦截器类

在这里插入图片描述

3. 配置属性文件

(1)配置application.properties

在这里插入图片描述

4. 导入静态资源

自行创建 webapp目录。一般说来,在约定里,springboot 的静态资源会在 static 目录下,但是我们是放在 webapp 目录下, 因为我们还要做上传图片的功能,如果是放在 static 下,上传后的图片就无法被访问,放在 webapp 下,上传后,能够立即被访问。
在这里插入图片描述

三:运行

1. 启动redis

在这里插入图片描述

2. 启动项目

在这里插入图片描述

使用技术 后台主要是springboot+mybatis+shiro+jsp(jsp已过时)...,前端界面主要使用bootstrap框架搭建,并使用了ueditor富文本编辑器、highcharts图表库 系统划分与功能 该系统分为前台展示和后台管理两大模块。 前台主要是为消费者服务。该子系统实现了注册,登录,以及从浏览、下单到支付的整个流程,支付使用的是支付宝的沙箱环境,属于模拟环境。需要注册沙箱账号才能付款(可用支付账号:ynkltg9762@sandbox.com,密码:111111)。 后台主要是为商家服务,实现了权限,店铺,商品和订单等的管理,以及生成一些简单的报表信息。访问/admin进入后台 依赖环境 jdk1.8,maven,mysql 注意事项 在数据库中创建名为bookstore数据库,然后运行项目的resource目录下的sql脚本,记得在application.properties改数据库配置信息 登录系统的账号和密码,请自行查看数据库下的user表 (管理员账号:admin 密码:123) application.properties中的邮箱配置要改成自己,否则不能注册系统账号 使用沙箱环境的支付宝才能扫码支付,application.properties中的my.ip要改成自己,有项目名还要加项目名,否则支付成功回调出错 运行项目 方法一:在ide(推荐idea)运行项目,配置好启动环境,运行main方法, 要去掉继承的类SpringBootServletInitializer和方法 方法二:在项目的根目录下执行maven命令 mvn spring-boot:run 方法三: 在ide或直接用maven打成的war包放到tomcat运行,此时如果访问需要加上项目名的话,支付宝回调地址需要加上项目名称 mvn package -Dmaven.test.skip=true 方法四: 使用命令运行jar或war,因为也是一个传统JavaWeb项目,前后端不分离,打成jar会无法访问静态资源,所以只能打成war,把WEN-INF下面的东西也打包好) java -jar xxx.war 具体可以自行百度搜索Spring Boot项目的启动方式
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于SpringBoot+Shiro+Layui构建的商城商店系统源码+项目说明(高分毕设).zip # ebe-shop ebe-shop是一款简单美观高效的商城系统,使用SpringBoot、Shiro架构,数据持久化层为Mybatis+Mybatis-Plus构建及Layui+Thymeleaf模板引擎搭建的前端视图模型,适合新零售、商店、连锁商店等系统使用。 #### 技术选型 - 核心框架:Spring Boot - 权限框架:Apache Shiro - 模板引擎:Thymeleaf - 持久层框架:MyBatis-plus - 数据库连接池:Alibaba Druid - 缓存框架: RedisShiro-Redis - 前端框架:Layui、WebUploader文件上传、ECharts图表、formSelects 4.x 多选框、eleTree 树组件 **账户:** | 账户 | 密码 | 说明 | | ----- | -------------------------- | -------------------------------------------------------- | | Janc | qweasd | 演示角色,拥有查看、修改、删除、新增权限(系统模块除外) | | test | qweasd | 注册账户,拥有查看,新增权限(新增用户除外) | | black | qweasd | 业务角色,负责业务、分类、规格模块(包含增删改查) | | admin | qweasd(演示环境暂不开放) | 系统管理员,拥有所有操作权限 ^_^ | #### 系统结构 - module-core 核心模块 - module-manage 后台系统模块(基本完善) - module-moblie 移动端模块(正在进行) #### 目标功能 后台系统: - [x] 系统管理模块 -- 完成 - [x] 业务管理模块 -- 完成 - [x] 系统监控模块 -- 完成 - [x] 分类规格模块 -- 完成 - [x] C端数据模块 -- 完成 - [x] CMS内容管理 -- 完成 - [x] 图片上传 -- 完成 - [x] 权限管理 -- 完成 - [x] 代码生成 -- 完成 - [x] 登录日志记录 -- 完成 - [ ] 导出导入 -- 进行 - [ ] 接口限流 -- 未开始 小程序(进行中): - [ ] 小程序授权登录 - [ ] IP定位 - [ ] 下单 - [ ] 订单信息 - [ ] 购物车功能 - [ ] 用户信息 - [ ] 添加、删除、修改收货地址 - [ ] 商品详情 - [ ] 商家详情 - [ ] 测量距离 #### 系统截图 ![ebe_home.png](https://github.com/tysxquan/ebe-shop/blob/master/screenshots/ebe_home.png) ![ebe_user.png](https://github.com/tysxquan/ebe-shop/blob/master/screenshots/ebe_user.png) ![ebe_update.png](https://github.com/tysxquan/ebe-shop/blob/master/screenshots/ebe_update.png) ![ebe_personal.png](https://github.com/tysxquan/ebe-shop/blob/master/screenshots/ebe_personal.png) ####
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值