《毕业设计(论文)-Springboot汽车配件管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业设计(论文)-Springboot汽车配件管理系统设计与实现.docx(34页珍藏版)》请在第壹文秘上搜索。
1、Springboot汽车配件管理系统一、绪论1.l研究意义和背景随着我国经济的持续发展,汽车已经逐步进入了家庭。汽车行业的发展,也带动了汽车配件行业的快速发展。汽车配件行业的迅猛发展,使得汽配行业的竞争越来越激烈。如何在激烈的竞争中取胜,是每家汽车零部件企业当前所面临的严峻挑战。21世纪是知识经济的时代,管理者必须运用科学的管理手段进行企业经营,方能在激烈的竞争中获胜。先进的管理模式,在很大程度上必须借助计算机来完成。目前,汽车配件销售企业的计算机管理水平还很低,相比其它许多行业仅是处在刚开始使用的阶段,企业采用电脑管理业务、财务、生产流程等诸多环节已成为汽配企业的必然趋势。汽车配件厂仓库管理
2、系统在现在的汽车行业中已经是一个广泛应用的系统,无论是大型的汽车配件厂,还是中小型的汽车配件行都可见其踪影。其之所以这么受欢迎,是因为汽车配件厂仓库管理系统囊括了配件进、出、存管理的全过程,管理种类繁多,出入数据发生频繁。此管理系统也渐渐进入了各大小汽车配件厂,对于厂领导,希望能对仓库内的汽车配件库存状态了如指掌,为决策管理提供科学依据,而对厂内的工作人员,期望能够避免繁琐的手工操作,甩掉陈旧的手工计算账目方式,达到事半功倍的效果。本文要设计开发的汽车配件厂仓库进销存计算机管理系统能从宏观和微观上调控配件的库存量,自动提供仓库配件的进销存信息,让以上的期望都变成了现实,使决策者有效管理库内的汽
3、车配件,提高了企业的经济效益,也为员工减少了工作量,并提高了工作效率。因此,这个课题具有很大的潜在价值并存在很大的实用性,设计时其功能模块简洁清晰,为以后软件维护和系统升级打好扎实的基础。1.2国内外研究现状、水平和发展趋势随着市场经济发展,尤其是我国加入WTO,融入经济全球化潮流,汽车配件行业已进入市场经济发展新时期,各部门和市场联系越来越紧密,我国汽配产业也进入新历史发展阶段。各部门和市场对汽配产业信息化的认识逐步提高,积极探索汽配产业信息体系如何向广大企业提供更服务。为了更好地服务于企业和用户,推进现代化进程,汽车配件行业信息体系建设已迫在眉睫。随着电子商务在市场运用深化,一部分批发市场
4、“蒸发”了,悄然退出市场、使有形市场和无形市场相结合从而产生一种新模式。可以充分利用有形市场的优势,创办网上汽配系统,搭建网上数据管理,使汽车配件管理平台的发展成为必然。1.3项目的可行性研究设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。根据目前阶段所掌握的知识,根据这学期以及之前学习掌握的java编程知识和数据库应用知识以及前端知识做出一个这样的基于、SPringboot轻量级框架网页版的汽车配件管理平台。1. 4相关技术简介1.1.1 springSPring框架是JaVa平台上的一种开源应用框架,提供具有控制反转特性容器。尽管Spring框架自身对编程模型没有限制,
5、以至于后来让它作为EJB(EnterPriSeJaVaBeanS)模型的补充,甚至是替补。SPring框架为开发提供了一系列的解决方案,比如利用控制反转核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期的容器化,利用而向切面编程进行声明式事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等。SPring框架具有控制反转(IOC)特性,它提供了一种通过JaVa的反射机制对JaVa对象进行统一的配置管理的方法。SPring框架利用容器管理对象生命周期,容器可以通过扫描XM1.文件配置对象。SDring框架具有面向切面编程(AOP)框架,SPringAOP框架基于代理
6、模式,运行时可配置;AoP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,SPring框架下的事务管理、远程访问等功能均可以通过使用SPringAOP技术实现。SPring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XM1.或JaVa注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、My
7、BATIsHibernateJaVa数据对象(JDo)、APaCheoJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。SPring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的Web框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVCo1.1.2 mybatismybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个SqlSessionFactory实例展开。mybatis通过配置文件关联到各实
8、体类Mapper文件,Mapper文件中配置了每个类对数据库所需进行的Sql语句映射。在每次与数据库交互,通过SqlSeSSiOnFaCtOry拿到一个SqlSeSSiOn,再执行sql。页面发送请求给控制器,控制器调用业务层处理,逻辑层向持久层发送请求,持久层与数据库交互,将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。1.1.3 Shiro权限框架ShirO是一个安全框架,是APaChe的一个项目。ShirO提供了:认证、授权、加密、会话管理、与Web集成、缓存等模块。1.1.4 块介绍Authentication:用户身份识别,可以是登录;AlIthOriZa
9、tiOn:授权,权限验证,验证某个已认证的用户是否拥有某个权限功能;即判断用户是否能做事情,常见:脸证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某资源是否具有某个权限。SessionManager:会话管理,用户登录后就是一次会话,在没有退出之前,所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的。Cryptography:加密,保护数据的安全性,密码加密存储到数据库,而不是明文存储。WebSupport:Web支持,可以非常容易的集成到javaweb环境。Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率。Co
10、ncurrency:shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去。Testing:提供测试支持。2、核心概念Subject:主体,代表了当前操作用户,这个用户不一定是具体的人,与当前应用交互的任何东西都是subject,即抽象概念。所有SubJect都绑定到SecurityManager,与Subject交互都会委托给SerCIlrityManager;SecurityManager:安全管理器;即所有与subject安全有关的操作都会与SecurStyManager交互;且它管理着所有的Subject;它负责与里面的各个组件交互,也可以把它理解成s
11、pringmvc中DiSpatcherServIet前端控制器。Realm:域,安全数据源。ShirO从ReaIrTl获取安全数据(如用户、权限),就是说SeCUrityManager险证用户身份,那么它需要从Realm得到用户相应角色、权限进行验证用户是否能进行操作;可以把ReaIm看成DataSOilrce,即安全数据源。1、应用代码通过Subject来进行认证和授权,而Subject又委托给SecurityManager;2、SeCUrityManager要验证用户身份,那么它需要从Realm中获取相对应的用户、角色、权限进行比较以确定用户身份是否合法。总结:ShirO不提供维护用户、权
12、限,而是通过ReaIrn让开发人员自己注入。3、shiro内部架构介绍1) Subject:主体,看到主体可以是任何与应用交互“用户”。2) SecurityManager:相当于SpringMVC中的DiSpatcherServIet或者Struts2中的FiIterDispatchero它是Shiro的核心,所有具体的交互都通过SecurityManager进行控制。它管理着所有Subject、且负责进行认证和授权、及会话、缓存的管理。3) Authenticator:认证器,负责主体认证的,这是一个扩展点,如果用户觉得Shiro默认的不好,我们可以自定义实现。其需要认证策略(AUthen
13、tiCationStrategy),即什么情况下算用户认证通过了。4) Authrizer:授权器,或者访问控制器。它用来决定主体是否有权限进行相应的操作,即控制着用户能访问应用中的哪些功能。5) Realm:可以有1个或多个Realm,可以认为是安全实体数据源,即用于获取安全实体的。它可以是JDBC实现,也可以是1.DAP实现,或者内存实现等。6) SessionManager:如果写过Servlet就应该知道Session的概念,Session需要有人去管理它的生命周期,这个组件就是SessionManagero而Shiro并不仅仅可以用在Web环境,也可以用在如普通的JavaSE环境。7
14、) SessionDAO:DAO大家都用过,数据访问对象,用于会话的CRUD0我们可以自定义SessionDAO的实现,控制session存储的位置。如通过JDBC写到数据库或通过Jedis写入redis中。另外SessionDAO中可以使用Cache进行缓存,以提高性能。8) CacheManager:缓存管理器。它来管理如用户、角色、权限等的缓存的。因为这些数据基本上很少去改变,放到缓存中后可以提高访问的性能。9) Cryptography:密码模块,Shiro提高了一些常见的加密组件用于如密码加密/解密的。4、过滤器当Shiro被运用到web项目时,Shiro会自动创建一些默认的过滤器对
15、客户端请求进行过滤。以下是Shiro提供的过滤器:_过滤器简称对应的Java类org.apache,shiro.web.fiIter.authc.AnonymousFiIteranonorg.apache,shiro.web.fiIter.authc.FormAuthenticatiauthc1.ronFiIterauthcBasicorg.apache,shiro.web.fiIter,authc.BasicHttpAuthentiCationFiIterpermsorg.apache,shiro.web.fiIter,authz.PermissionsAuthorizationFiIter
16、portorg.apache.shiro.web.fiIter.authz.PortFiIterrestorg.apache.shiro.web.fiIter.authz.HttpMethodPermissionFiIterroIesorg.apache.shiro.web.fiIter,authz.RoIesAuthorizationFiIterssIorg.apache,shiro.web.fiIter.authz.SsIFiIteruserorg.apache.shiro.web.fiIter,authc.UserFiIterIogoutorg.apache.shiro.web.fiIter.authc.1.ogoutFiIternoSessionCreationorg.apache.shiro.web.fiI