《毕业设计(论文)-Springboot+redis水果超市商城系统设计.docx》由会员分享,可在线阅读,更多相关《毕业设计(论文)-Springboot+redis水果超市商城系统设计.docx(52页珍藏版)》请在优知文库上搜索。
1、Springboot水果超市平台一、绪论1.l研究意义日益发展的信息技术,互联网经济的快速兴起,网上的购物日益受到人们的关注,蔬菜水果网上批发市场模式也必然成为其潮流发展一部分。基于springboot技术的水果在线批发系统借助于遍布全球的互联网,进行水果的市场消费流动,因此水果的批发既可以在本地进行,也可以在异地进行。网上进行水果批发既可以省下许多时间体力,也可以节省来回的花销成本,更可以足不出户就可以了解到水果批发市场的行情,消费者可以吃到想吃的新鲜的水果。生产者以及批发销售商可以获得更多客户资源和批发渠道,进而提升蔬菜水果批发销量和规模。轻轻松松实现买卖交易。本课题利用Javasprin
2、gboot技术开发一个水果系统,为消费者和批发商提供一个平台,降低了成本、时间占用,也解决了交通困难等系列问题,促进人们生活消费水平。1.2国内外研究现状、水平和发展趋势随着农村市场经济发展,尤其是我国加入WTo,融入经济全球化潮流,水果业已进入国内外市场经济发展新时期,农业、农村与市场联系越来越紧密,我国水果产业也进入新历史发展阶段。水果产业部门、科技部门、涉农单位对水果产业信息化的认识逐步提高,积极探索水果产业信息体系如何向广大农民企业提供更服务。蔬菜经营场所封闭性、分散性和生产手段落后等特点决定了水果产业的发展起到巨大推动作用。为了更好地服务于农业、农村、农民,推进农业现代化进程,农业信
3、息体系建设已迫在眉睫。随着电子商务在批发市场运用深化,一部分批发市场“蒸发”了,悄然退出市场、使有形市场和无形市场相结合从而产生一种新模式。对绝大多数市场来说,在组织创新上,当前最易采取形式是有形市场与无形市场相结合的方式。可以充分利用有形市场的优势,创办网上市场,搭建网上交易平台为市场经营者建立网上水果商铺,进行网上水果商品宣传,引导经营者开展网上交易,实行与现货交易并行的电子商务模式。农业网站发展表明,互联网和农业的结合正在逐渐深入,这是农业现代化发展需要,同时也是农村电子商务自身发展必然趋势,为农产品销售电子商务的发展提供了保障在广大购物者渐渐对产品性价比要求越来越高的今天,我们发现必须
4、要有一套完善的采购经销体系、才能不断提高产品质量同时降低产品的价格,所以减少产品销售中间环节成本增加势在必行。为此创办电子商务果蔬商城网站,让优质新鲜的蔬菜水果在网站直接面消费者,一提高网站可以提供比在商店购物中更为详尽资料、历史渊源以及顾客评论等信息,顾客可以方便地从琳琅满目的各类精品蔬菜水果中快速查询出需要的产品;另一方面也少商店运营成本,将价格实惠转让给顾客、使电子商务果蔬商城网站的发展成为必然。1.3项目的可行性研究设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。根据目前阶段所掌握的知识,根据这学期以及之前学习掌握的java编程知识和数据库应用知识以及前端知识做出一
5、个这样的基于、springboot轻量级框架网页版的水果超市平台。1.4相关技术简介1.4.1springSPring框架是JaVa平台上的一种开源应用框架,提供具有控制反转特性容器。尽管Spring框架自身对编程模型没有限制,以至于后来让它作为EJB(EnterpriSeJavaBeans)模型的补充,甚至是替补。SPring框架为开发提供了一系列的解决方案,比如利用控制反转核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期的容器化,利用面向切面编程进行声明式事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等。SPring框架具有控制反转(IOC)特性,它提
6、供了一种通过JaVa的反射机制对JaVa对象进行统一的配置管理的方法。SPring框架利用容器管理对象生命周期,容器可以通过扫描XM1.文件配置对象。SPring框架具有面向切面编程(AOP)框架,SPringAOP框架基于代理模式,运行时可配置;AoP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AoP特性,SPring框架下的事务管理、远程访问等功能均可以通过使用SPringAOP技术实现。SPring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。SPrin
7、g集成多种事务模板,系统可以通过事务模板、XM1.或JaVa注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、MyBATIsHibernateJaVa数据对象(JDo)、APaCheoJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。SPring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的Web框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于
8、是创建了SpringMVCo1.4.2mybatismybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个SqlSessionFactory实例展开。mybatis通过配置文件关联到各实体类Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互,通过SqlSeSSiOnFaCtOry拿到一个SqlSeSSiOn,再执行SqIo页面发送请求给控制器,控制器调用业务层处理,逻辑层向持久层发送请求,持久层与数据库交互,将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。1.4.3Shiro权
9、限框架ShirO是一个安全框架,是APaChe的一个项目。ShirO提供了:认证、授权、加密、会话管理、与web集成、缓存等模块。AuthenticationAuthorizationSessionManagementCryptographyCachingWebSupport.rConcurrencyTestingRunAs-YRe嘴,bMe国PrimaryConcernsSupportingFeatures1.1、模块介绍Authentication:用户身份识别,可以是登录;AIlthOriZatiOn:授权,权限脸证,脸证某个已认证的用户是否拥有某个权限功能;即判断用户是否能做事情,常见
10、:脸证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某资源是否具有某个权限。SessionManager:会话管理,用户登录后就是一次会话,在没有退出之前,所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的。Cryptography:加密,保护数据的安全性,密码加密存储到数据库,而不是明文存储。WebSupport:Web支持,可以非常容易的集成到javaweb环境。Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率。Concurrency:shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限
11、自动传播过去。Testing:提供测试支持。2、核心概念Subject:主体,代表了当前操作用户,这个用户不一定是具体的人,与当前应用交互的任何东西都是subject,即抽象概念。所有Subject都绑定到SecurityManager,与Subject交互都会委托给SercurityManager;SecurityManager:安全管理器;即所有与subject安全有关的操作都会与SecurityManager交互;且它管理着所有的Subject;它负责与里面的各个组件交互,也可以把它理解成springmvc中DiSpatcherServIet前端控制器。Realm:域,安全数据源。Shi
12、rO从Realnl获取安全数据(如用户、权限),就是说SeCUrityManager验证用户身份,那么它需要从RealnI得到用户相应角色、权限进行验证用户是否能进行操作;可以把ReaIrn看成DataSoUrce,即安全数据源。惘靖)(thecurrentuser)(managesallSubjects)(accessyoursecuritydata)从上图可以看出:1、应用代码通过Subject来进行认证和授权,而Subject又委托给SecurityManager;2、SeCUrityManager要验证用户身份,那么它需要从ReaIm中获取相对应的用户、角色、权限进行比较以确定用户身份
13、是否合法。总结:ShirO不提供维护用户、权限,而是通过Realm让开发人员自己注入。权限表(m所U)Intid;3、shiro内部架构介绍2国。WebMVC(Sub0rrtx5fjJ1.PluggableRealms(1Z*,*/、Z1.DAPGUbIeCDSessionDAOCCe)CacheManager2) SecurityManager:相当于SpringMVC中的DiSpatcherServIet或者Struts2中的FiIterDispatchero它是Shiro的核心,所有具体的交互都通过SecurityManager进行控制。它管理看所有Subject且负责进行认证和授权、及
14、会话、缓存的管理。3) Authenticator:认证器,负责主体认证的,这是一个扩展点,如果用户觉得Shiro默认的不好,我们可以自定义实现。其需要认证策略(AUthentiCatiOrlStrategy),即什么情况下算用户认证通过了。4) Authrizer:授权器,或者访问控制器。它用来决定主体是否有权限进行相应的操作,即控制着用户能访问应用中的哪些功能。5) Realm:可以有1个或多个Realm,可以认为是安全实体数据源,即用于获取安全实体的。它可以是JDBC实现,也可以是1.DAP实现,或者内存实现等。6) SessionManager:如果写过Servlet就应该知道Sess
15、ion的概念,Session需要有人去管理它的生命周期,这个组件就是SessionManager0而Shiro并不仅仅可以用在Web环境,也可以用在如普通的JavaSE环境。7) SessionDAO:DAO大家都用过,数据访问对象,用于会话的CRUD0我们可以自定义SessionDAO的实现,控制session存储的位置。如通过JDBC写到数据库或通过jedis写入redis中。另外SessionDAO中可以使用Cache进行缓存,以提高性能。8) CacheManager:缓存管理器。它来管理如用户、角色、权限等的缓存的。因为这些数据基本上很少去改变,放到缓存中后可以提高访问的性能。9) Cryptography:密码模块,Shiro提高了一些常见的加密组件用于如密码加密/解密的。4、过滤器当Shiro被运用到web项目时,Shiro会自动创建一些默认的过滤器对客户端请求进行过滤。以下是Shiro提供的过滤器:过滤器简称对应的Java类