目录
摘要
随着社会的发展和城市化进程的加速,流浪动物问题逐渐成为社会关注的热点。流浪动物救助管理不仅关系到动物福利,也体现了社会的文明程度。然而,现有的流浪动物救助管理方式往往面临诸多挑战,如信息不对称、资源分配不均、管理效率低下等。springboot框架以其高效、稳定和易于维护的特点,广泛应用于企业级应用开发。在流浪动物救助管理领域,springboot框架的应用可实现系统的模块化、可扩展性和可维护性,从而提高系统的运行效率和稳定性。因此,借助先进的信息技术,开发一款springboot流浪动物救助与领养系统,对于提升救助管理水平具有重要意义。
本文提出的springboot流浪动物救助与领养系统是采用基于Java语言、MySQL数据库、 springboot 框架为基础进行开发。通过系统可以更及时准确地发布新闻资讯、动物信息等相关信息,提高公众对流浪动物救助工作的关注和参与度,促进流浪动物的救助和领养工作,改善社会对待流浪动物的态度,有助于提高流浪动物的生存力。
关键词:流浪动物;救助与领养;springboot
Abstract
With the development of society and the acceleration of urbanization, the issue of stray animals has gradually become a hot topic of social concern. The rescue and management of stray animals not only relates to animal welfare, but also reflects the level of social civilization. However, the existing management methods for rescuing stray animals often face many challenges, such as information asymmetry, uneven resource allocation, and low management efficiency. The springboot framework is widely used in enterprise level application development due to its high efficiency, stability, and ease of maintenance. In the field of stray animal rescue management, the application of the springboot framework can achieve modularity, scalability, and maintainability of the system, thereby improving the operational efficiency and stability of the system. Therefore, with the help of advanced information technology, developing a springboot stray animal rescue and adoption system is of great significance for improving the level of rescue management.
The springboot stray animal rescue and adoption system proposed in this article is developed based on Java language, MySQL database, and the springboot framework. Through the system, news and animal information can be released more timely and accurately, increasing public attention and participation in the rescue of stray animals, promoting the rescue and adoption of stray animals, improving social attitudes towards stray animals, and helping to enhance the survival of stray animals.
Keywords:Wandering animals; Assistance and adoption; Springboot
1 绪论
1.1 选题背景与意义
近年来,随着城市化进程的加快,人们生活节奏加快,对于流浪动物的照顾和管理渐渐疏忽。导致大量的流浪动物出现在城市街头。据估计,全球每年约有 1.5 亿只无家可归的流浪动物,其中大部分被遗弃在街头或公共场所。这些流浪动物中,许多患有疾病或伤势严重,得不到及时的救助和治疗。流浪动物问题已经成为一个备受关注的社会问题,大量的流浪动物得不到有效的救助和治疗,面临着生存困境。springboot框架以其高效、稳定和易于维护的特点,广泛应用于企业级应用开发。借助先进的信息技术,开发一款springboot流浪动物救助与领养系统,有助于提升流浪动物救助管理水平。
随着城市化的不断发展和人类对动物的关注度不断提高,流浪动物问题已经成为一个备受关注的社会问题。研究并设计一个springboot流浪动物救助与领养系统具有重要的意义。
首先,通过系统发布动物信息,通过救助站和用户的救助领养,可以帮助更多的流浪动物重新找到一个温暖的家,从而减少流浪动物的数量。
其次,通过系统,可以更好地记录流浪动物信息、促进领养和跟踪等,提高流浪动物的领养率和生存力,减少流浪动物对社会的负面影响,构建人与动物和谐共处的生活环境。
再次,有利于公共卫生安全,流浪动物可能会传播疾病,对公共卫生安全造成威胁。通过建立springboot流浪动物救助与领养系统,对流浪动物进行领养或救助,可以有效降低疾病传播的风险,保障公共卫生安全。
1.2国内外目前现状
在国内,流浪动物问题日益凸显,流浪动物数量不断增长,给社会带来诸多挑战。这些挑战包括公共卫生问题、社会安全隐患以及生态环境压力等。因此,流浪动物救助管理成为了一个备受关注的社会议题。
近年来,我国在流浪动物救助管理方面的研究逐渐深入。学者们对于流浪动物救助的模式、方法以及技术手段进行了广泛探讨,涉及的管理理论涵盖了社会学、管理学、动物学等多个学科。同时,对于流浪动物的心理和生理健康问题也有了更深入的了解。在技术方面,目前国内流浪动物救助仍面临识别、追踪、数据分析等方面的技术瓶颈。在政策与法律法规方面,尽管我国已有相关的动物保护法律,但在具体执行过程中仍存在诸多困难,如处罚力度不够、执行不力等。此外,社会对于流浪动物的认识和态度也是一大挑战,提高公众意识是解决这一问题的关键。
目前已有一些智能技术和产品应用于流浪动物救助管理,如智能项圈、流浪动物定位器等。这些技术可以帮助追踪和管理流浪动物,提高救助效率。此外,一些非政府组织和社会团体也在积极参与到流浪动物救助的行动中,提供了很多切实可行的解决方案。同时,越来越多的组织和人士开始关注和参与到流浪动物救助的行动中。例如,一些公益组织定期开展流浪动物绝育、疫苗接种等活动,降低流浪动物数量。同时,也有不少企业和个人通过捐款捐物、领养等方式为流浪动物提供帮助。这些努力已经在一定程度上改善了流浪动物的生活状况。
在国外,自20世纪中期以来,许多西方国家开始重视流浪动物问题,纷纷建立起相应的救助管理系统。这些系统通常包括收容所、救援组织、兽医诊所和领养机构等,形成了一个庞大的社会网络。目前,许多国家已经形成了较为完善的救助体系,为流浪动物提供了更好的生活条件和更多的被领养的机会。在美国,流浪动物救助系统十分发达,民间组织众多,政府也提供了相应的支持。特色在于重视动物福利和权益保护,同时鼓励领养和坚决反对安乐死。在英国,流浪动物救助系统强调教育和宣传,鼓励人们负责任地对待动物,同时还开展了广泛的社区支持项目。在德国,流浪动物救助系统以政府为主导,设立了大量的动物收容所,同时重视对虐待动物行为的法律制裁。
近年来,国外的研究机构对流浪动物救助管理问题进行了深入研究,涉及社会学、心理学、经济学和法学等多个领域。这些研究不仅提供了理论支持,还为实践提供了实证依据,推动了救助系统的发展和完善。
1.3本文的组织结构
第一章是绪论,本文章的开头部分,对本题目的研究背景和研究意义等一些做文字性的描述。
第二章研究了流浪动物救助与领养系统的所采用的开发技术和开发工具。
第三章是系统分析部分,包括系统总体需求描述、功能性角度分析系统需求、非功能性等各个方面分析系统是否可以实现。
第四章是系统设计部分,本文章的重要部分,提供了系统架构的详细设计和一些主要功能模块的设计说明。
第五章是系统的具体实现,介绍系统的各个模块的具体实现。
第六章在前几章的基础上对系统进行测试和运行。
最后对系统进行了认真的总结,以此对未来有一个新的展望。
2.相关技术介绍
2.1 Java语言与JDK开发环境
Java是美国sun公司所推出的一款程序设计语言,其能够在多个平台内应用,具有良好兼容性,进而其凭借自身优势在数据中心、个人PC与科技超级计算机等平台内广泛应用,具有目前最为庞大的开发者专业社群[1]。
JDK为美国sun公司为java开发员所推出的一款全新产品,要是没有JDK的情况下,所安装的java程序也就无法运行[2]。
2.2 B/S结构
基于Java技术开发的B/S架构系统,需要借助Tomcat服务器应用程序进行部署运行[5]。用户访问系统的时候,通过浏览器向应用程序服务器端发起访问请求,服务器端的程序在接到用户请求以后,服务器端应用程序对客户请求做出相应,在调用服务器端的业务逻辑程序完成和数据库端的交互,进一步生成相应的HTML/XML数据,最终把结果反馈给浏览器端用户[3]。
在该系统的开发中,开发模式采用B/S架构技术进行实现,通过部署服务器端应用程序,实现用户通过网站域名或者内网IP地址访问系统,实现系统中数据的动态化呈现和管理,加之页面效果的动态化呈现,不仅提升了页面的表现力,而且管理者可以随时更新系统中的各种信息,充分满足管理者和访问用户之间的信息交互[4]。
2.3 Springboot框架
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。
2.4 MySQL数据库
MySQL经过多次的更新,功能层面已经非常的丰富和完善了,从MySQL4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的MySQL支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷[8][9]。
针对本文中设计的捐赠信息管理系统在实际的实现过程中,最终选择MySQL数据库的主要原因在于在用户的应用系统应用及开发的过程中会存在大量的数据库比较频繁的操作,而且数据的安全性要求也是非常的高。综合这些因素,最终选择安全性系数比较高的MySQL来对捐赠信息管理系统后台数据进行存储操作[10][11]。
数据库管理系统的总体结构图如下图所示。
图2-1 数据库组成结构
3 系统分析
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。首先对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。下面是详细的介绍。
3.1 系统需求分析
按照springboot流浪动物救助与领养系统的角色,主要包括普通用户模块和管理员模块,各模块功能具体如下:
1. 普通用户功能:
(1)注册登录:访客可以通过注册成为系统用户,注册后且通过管理员审核后可以用账号密码进行登录。
(2)首页:用户可以查看系统首页展示的轮播图、新闻资讯、动物资讯推荐等信息。
(3)通知公告:用户可以查看系统发布的通知公告信息。
(4)新闻资讯:用户点可以查看新闻资讯列表中的某一资讯详情并进行点赞、收藏和发表评论操作。
(6)留言反馈;用户可以上传留言,反馈关于流浪动物的信息。
(7)流浪动物:用户可以查看流浪动物列表中的某一流浪动物详情并进行点赞、收藏、发表评论和在线完成申请领养信息提交。
(8)志愿活动:用户可以查看志愿活动列表中的某一志愿活动详情并进行点赞、收藏、发表评论和在线完成报名信息提交。
(8)我的:用户可以修改我的账户中的个人资料和登录密码、可以查看和管理个人中心中的领养信息、活动报名、爱心捐款、收藏。
2.管理员功能:
(1)后台首页:管理员可以查看后台首页展示的信息。
(2)系统用户:管理员可以对查看某一系统用户信息详情并进行审核,可以对系统用户信息进行查询、添加、重置和删除操作。
(3)流浪动物管理:管理员可以对流浪动物信息进行添加,可以查看流浪动物信息列表中某一流浪动物信息详情和评论信息,可以对流浪动物信息列表进行查询、重置和删除操作。
(4)领养信息管理:管理员可以查看领养信息列表中某一领养信息详情并进行审核和回复;管理员可以对领养信息列表进行查询、重置和删除操作。
(5)志愿活动管理:管理员可以查看志愿活动列表中某一志愿活动详情并进行审核和回复;管理员可以对志愿活动列表进行查询、重置和删除操作。
(6)活动报名管理:管理员可以对活动报名进行审核,可以查看活动报名列表中某一助养信息详情,可以对活动报名列表进行查询、重置和删除操作。
(7)系统管理:管理员可以对轮播图进行查询、重置、添加和删除操作。
(8) 留言管理:管理员可以对留言列表进行查询、重置和删除操作,可以查看某一留言具体详情并回复。
(9)通知公告管理:管理员可以对通知公告进行查询、重置、添加和删除操作。
(10)资源管理:管理员可以添加资讯分类信息、可以查看新闻资讯列表中某一资讯详情和评论信息,可以对新闻资讯列表信息进行查询、重置、添加和删除操作。
(12)我的:管理员可以修改个人信息和登录密码。
springboot流浪动物救助与领养系统的非功能性需求比如springboot流浪动物救助与领养系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1springboot流浪动物救助与领养系统非功能需求表
安全性 |
主要指springboot流浪动物救助与领养系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 |
可靠性是指springboot流浪动物救助与领养系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 |
性能是影响springboot流浪动物救助与领养系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 |
比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 |
用户只要跟着springboot流浪动物救助与领养系统的页面展示内容进行操作,就可以了。 |
可维护性 |
springboot流浪动物救助与领养系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
通过2.1.1功能的分析,得出了本springboot流浪动物救助与领养系统的用例图:
普通用户角色的用例图如下图3-1所示。
图3-1 普通用户角色用例图
管理员角色的用例图如下图3-2所示。
图3-2 管理员角色用例图
3.2可行性分析
springboot是一种基于Java的成熟框架,广泛应用于电子商务领域。采用springboot框架开发有助于提高系统的可拓展性和可维护性,MySQL数据库具有强大的数据处理能力,能够有效的存储和管理系统中的各项数据。因此从技术上来说是可行的。
- 经济可行性:
springboot框架是开源的,拥有大量的社区支持和丰富的学习资源。使用springboot框架进行开发可以降低开发成本,缩短开发周期。此外,springboot框架本身具有较高的可维护性和可扩展性,开发人员可以很方便地完成前后端的数据交互。此外,springboot框架中的Spring MVC框架可以简化Web开发的流程,进一步降低了开发成本。因此从经济层面上分析是可行的。
- 社会可行性:
流浪动物的问题是一个普遍的社会问题,许多城市都面临着流浪动物的救助问题。因此,开发一个springboot流浪动物救助与领养系统是符合社会需求的,是可行的。
4 系统设计
本章主要讨论的内容包括springboot流浪动物救助与领养系统的环境配置及关键技术、文件组织结构、系统功能模块设计、数据库设计。
4.1 环境配置及关键技术
本系统运行在Java JDK 1.8及以上版本的环境中,推荐使用JDK 1.8。此外,还需要安装Tomcat 7.x、8.x或9.x版本的服务器,以支持Web应用程序的运行。
- 开发工具
IDEA(2020版)/My Eclipse(2017)/Eclipse、Vs Code
- 数据库环境
- 本系统采用MySQL 5.7及以上版本作为数据库管理系统,需要安装MySQL数据库并配置好相关的数据库连接参数。此外,可以使用Navicat等数据库管理工具,方便地对数据库进行管理和操作。
- 硬件环境:该系统可以在Windows 7/8/10/11上运行,内存要求8GB以上。
- 其他:系统可能需要其他的第三方库或框架,例如Spring、Spring MVC、MyBatis、VUE等。
1 .Spring框架:Spring提供了一系列的解决方案和强大的扩展功能。其核心是IOC容器,负责管理对象的创建和依赖关系。
2. Spring MVC框架:用于构建Web应用程序,它充当了控制器层,处理所有的HTTP请求和响应。通过注解驱动的方式,使得MVC架构更加简洁易用。
3. MyBatis框架: MyBatis框架是一个持久层框架,通过配置文件和注解方式将接口与SQL语句绑定,使数据库访问操作更加直接和简洁。
4. springboot架构:通过将Spring、Spring MVC、MyBatis这三个框架整合,形成了一个强大的开发框架。Spring负责基础功能,Spring MVC处理Web请求,而MyBatis则与数据库交互。
5. 数据库技术:系统采用MySQL数据库,使用JDBC连接数据库,执行SQL语句,实现对数据的增删改查操作。
6. 前端技术:前端界面使用了HTML、CSS和JavaScript等技术,使得界面更加友好易
用。同时,通过AJAX技术实现前后端数据的交互。
- 安全技术:系统使用Spring Security进行权限控制和安全性保护,确保只有授权用
户才能访问特定的功能和数据。
4.2 文件组织结构
springboot流浪动物救助与领养系统的文件组织结构主要包括以下几个部分内容:
- 源代码目录结构
SRC/main/java:存放Java源代码的目录。
SRC/main/resources:存放配置文件、数据源配置、日志配置等的目录。
SRC/test/java:存放测试代码的目录。
- Java源代码目录结构
com.example.shelter(根据项目名称自行替换):存放所有的包和类。
Controller:存放所有的Controller类。
Mapper:存放所有的Mapper接口和XML映射文件。
Model:存放所有的数据模型类。
Service:存放所有的业务逻辑服务类。
3. 资源目录结构
db:存放数据库脚本、数据迁移脚本等。
log4j2.xml:Log4j2的配置文件。
Mybatis-config.xml:MyBatis的全局配置文件。
application.properties:Spring Boot的配置文件。
4.测试代码目录结构
com.example.shelter(与Java源代码目录结构一致):存放所有的测试类。
5. Web前端目录结构
public:存放静态资源:如Java Script、CSS、HTML、图片等。
SRC:存放前端开发代码,如VUE、React等。
- 文档和文档生成
使用如Swagger或Spring Fox来生成API文档,并放在专门的文档文件夹中。
- 数据库
使用MySQL,包含数据库脚本、数据迁移脚本等。
- 项目构建和部署脚本
例如用于打包和部署的脚本,可以放在scripts文件夹中。
4.3系统功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本springboot流浪动物救助与领养系统中的用例。那么接下来就要开始对本springboot流浪动物救助与领养系统的主要功能和数据库开始进行设计。springboot流浪动物救助与领养系统根据前面章节的需求分析得出,其总体功能模块图如下图4-2所示。

图4-2 springboot流浪动物救助与领养系统功能模块图
4.4 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
4.4.1 数据库概念模型设计
下面是整个springboot流浪动物救助与领养系统中主要的数据库表总E-R实体关系图。

图4-3 springboot流浪动物救助与领养系统总E-R关系图
4.4.2 数据库逻辑结构设计
通过上一小节中springboot流浪动物救助与领养系统中总E-R关系图上得出一共需要创建很多个数据表。在此主要罗列几个主要的数据库表结构设计。
表access_token (登陆访问时长)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID |
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 |
|
3 |
info |
text |
65535 |
0 |
Y |
N |
||
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
表adoption_information (领养信息)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
adoption_information_id |
int |
10 |
0 |
N |
Y |
领养信息ID |
|
2 |
animal_names |
varchar |
64 |
0 |
Y |
N |
动物名称 |
|
3 |
animal_species |
varchar |
64 |
0 |
Y |
N |
动物品种 |
|
4 |
animal_age |
varchar |
64 |
0 |
Y |
N |
动物年龄 |
|
5 |
animal_gender |
varchar |
64 |
0 |
Y |
N |
动物性别 |
|
6 |
animal_colors |
varchar |
64 |
0 |
Y |
N |
动物颜色 |
|
7 |
regular_users |
int |
10 |
0 |
Y |
N |
0 |
普通用户 |
8 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
9 |
user_phone_number |
varchar |
64 |
0 |
Y |
N |
用户电话 |
|
10 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
11 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表animal_species (动物品种)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
animal_species_id |
int |
10 |
0 |
N |
Y |
动物品种ID |
|
2 |
animal_species |
varchar |
64 |
0 |
Y |
N |
动物品种 |
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表article (文章:用于内容管理系统的文章)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] |
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
标题:[0,125]用于文章和html的title标签中 |
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分类:[0,1000]用来搜索指定类型的文章 |
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数:[0,1000000000]访问这篇文章的人次 |
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
8 |
source |
varchar |
255 |
0 |
Y |
N |
来源:[0,255]文章的出处 |
|