在现代互联网架构中,单点登录(SSO)是一项关键的技术,它允许用户使用一组登录凭证访问多个应用程序。本篇详细探讨了ruoyi-vue-pro项目中的一个特定模块,即通用的OAuth单点登录模块及其配套的实例代码。该模块的目的是提供一种安全、方便的解决方案,以实现多个服务之间的统一登录机制。 该模块的中心思想是利用OAuth 2.0协议,这是一个行业标准协议,用于授权第三方应用访问服务器上用户的信息。OAuth 2.0允许用户授权第三方应用访问他们存储在其他服务提供商上的信息,而不需要将用户名和密码提供给第三方应用。这样的授权是通过授权服务器来完成的,它在用户和第三方应用之间充当中间人的角色。 在ruoyi-vue-pro项目中,yudao-module-sso模块承担了创建和管理这种授权的职责。它提供了一种方式,让应用程序能够请求和接收令牌,然后使用这些令牌来访问受保护的资源。为了简化开发者的使用,该模块还包含了yudao-sso-demo-client示例模块,这是一个客户端应用的样本,展示了如何整合和使用单点登录模块。 开发者可以通过访问提供的资源下载地址来获得这两个模块。yudao-module-sso模块负责后端逻辑,包括令牌的生成、验证和用户认证。而yudao-sso-demo-client则是一个前端应用,演示了如何在客户端应用中实现单点登录功能。这个客户端应用通常是一个网页或者是一个通过Web浏览器运行的应用程序,它通过OAuth流程与后端进行交互,获取授权并最终访问资源。 在技术实现层面,OAuth 2.0提供了多种授权方式,如授权码模式、简化模式、密码模式和客户端模式等。开发者可以根据自己的应用需求和安全考虑选择合适的模式。ruoyi-vue-pro项目中的单点登录模块可能已经实现了其中的一种或多种方式,以便于开发者可以灵活使用。 此外,为了确保安全性,该模块可能实现了令牌的刷新机制,允许在令牌即将过期时自动更新。该模块还可能包含了防止CSRF攻击的机制,因为OAuth 2.0存在一些安全风险,开发者需要采取措施来保护应用免受攻击。 在使用单点登录模块之前,开发者应该熟悉OAuth 2.0协议的相关知识,了解不同授权模式的工作原理,以及如何配置和使用yudao-module-sso。此外,开发者还需要了解如何配置yudao-sso-demo-client以与单点登录模块正确对接。 ruoyi-vue-pro项目中的通用OAuth单点登录模块提供了一套完整的解决方案,旨在简化开发者在多个应用间实现统一认证的复杂过程。开发者利用这一模块可以有效地构建出安全且用户体验良好的单点登录系统。
2026-03-09 15:29:05 56KB oauth2 单点登录
1
RuoYi-Vue-Plus AI 智能编程助手是一款基于 RuoYi-Vue-Plus 5.X 企业级后端框架深度定制的 AI 开发工具,支持 Claude Code 和 OpenAI Codex 双引擎。该助手内置 40+ 专业开发技能和 10 大快捷命令,能够显著提升开发效率。其核心亮点包括双 AI 引擎支持、智能钩子系统、专业技能库和项目管理工具。通过智能钩子系统,AI 能够自动评估用户需求并精准匹配技能,确保每次响应都符合项目规范。此外,助手还提供了丰富的文档模板和开发指南,帮助开发者快速上手。适用于企业开发团队、独立开发者以及 AI 编程爱好者,能够有效降低开发成本并提升代码质量。 RuoYi-Vue-Plus AI 智能编程助手是一款高端的AI开发工具,它深度定制于RuoYi-Vue-Plus 5.X版本的企业级后端框架。这款工具融合了Claude Code和OpenAI Codex两大AI编程引擎,不仅优化了开发流程,还大幅提高了开发效率。它的功能覆盖了从基础代码编写到复杂项目管理的各个方面。 该AI编程助手内置了40多种专业开发技能,并且提供了10种快捷命令,开发者可以依据这些功能快速实现需求。这些技能和命令都经过精心设计,使得开发人员在开发过程中能够更加专注于业务逻辑,而非琐碎的技术实现细节。与此同时,双AI引擎的引入确保了编程助手的响应和解决方案能够更加精准和高效。 智能钩子系统是这款编程助手的另一大亮点。它通过评估用户需求,自动匹配最适合的技能库,从而确保AI的每一次响应都能够精确地贴合项目规范。这一功能极大提升了项目的一致性和质量,同时降低了因技术实现差异带来的风险。 专业技能库和项目管理工具的加入,为开发者提供了从项目启动到部署的全程支持。技能库收录了丰富的编程知识,覆盖了从传统Web开发到现代前后端分离架构的全方位技能。项目管理工具则简化了项目流程,使得开发团队能够更加高效地协作,加速项目的推进。 除了核心功能外,RuoYi-Vue-Plus AI 智能编程助手还提供了大量的文档模板和开发指南。这些文档和指南是开发者的宝贵资源,它们不仅有助于快速上手使用工具,还能加深开发者对技术实现细节的理解,从而更灵活地应对开发中遇到的各种问题。 这款工具特别适合于企业开发团队、独立开发者以及AI编程爱好者使用。它可以有效地降低开发成本,提升代码质量和开发效率。无论是在定制项目开发还是通用软件产品开发中,这款AI编程助手都能提供显著的效能提升和时间节约。 RuoYi-Vue-Plus AI 智能编程助手凭借其强大的功能和智能化的服务,为软件开发领域带来了革命性的变革。它的诞生不仅仅是一种新的工具,更是一种全新的高效开发模式。开发者们可以利用这款工具释放更多创新思维,从而实现更大的商业价值和产品价值。
2026-02-27 17:30:29 35KB 企业级开发 自动化开发
1
文章介绍了在ruoyi-vue-pro项目中引入ai模块时遇到的报错问题,具体报错信息为无法找到cn.iocoder.boot:yudao-module-ai-biz:pom:2.4.1-jdk8-SNAPSHOT依赖项。解决方法是通过前往yudao-server的pom文件,打开相关注释来解决依赖问题。该问题可能与依赖仓库配置或版本冲突有关,通过简单的配置调整即可解决。 在进行基于ruoyi-vue-pro项目开发时,开发者可能会遇到需要引入AI模块的情况。这一过程中,可能会遇到一些技术上的挑战,尤其是在处理项目依赖的时候。其中,一个常见的问题就是无法找到指定版本的cn.iocoder.boot:yudao-module-ai-biz:pom:2.4.1-jdk8-SNAPSHOT依赖项。这个依赖项是AI模块的核心部分,如果不能正确地解决此依赖问题,整个项目的AI功能可能都无法正常运行。 遇到这类问题时,通常的解决方法是检查项目的Maven依赖管理文件pom.xml,特别是yudao-server的pom文件。开发者需要确认是否有相关的依赖项被注释掉了,或者版本号是否正确。有时候,版本号的不一致可能会导致Maven无法正确解析依赖。在这种情况下,开发者需要确保使用的依赖项版本与项目中其他模块版本保持兼容,或者尝试使用项目开发者提供的最新版本。 除了依赖项版本不一致的问题,还可能涉及到依赖仓库的配置问题。在Maven中,如果指定的仓库不可用,那么依赖项就无法被下载,从而导致构建失败。遇到这种问题时,开发者需要检查Maven的settings.xml文件,确保仓库配置正确,并且网络可以正常访问这些仓库。 此外,开发者还需要检查是否有版本冲突的问题。有时候,不同的模块之间可能存在版本不兼容的问题,这需要开发者仔细检查各模块的依赖关系,确保所有模块之间能够和平共处。有时候,解决版本冲突需要升级或降级某些模块的版本,以便与主项目或其他模块兼容。 解决完依赖问题后,项目应该能够正常构建并运行。然而,这个过程也可能暴露出其他潜在的问题,如代码中的硬编码问题或者配置文件中的错误。因此,即使解决了直接的依赖问题,开发者也应当全面检查整个项目,确保所有配置都正确无误。 在实际开发过程中,了解和掌握Maven的依赖管理机制是非常重要的。它不仅可以帮助开发者解决项目中的依赖问题,还可以通过熟练使用Maven仓库管理和项目构建过程,提升开发效率和项目质量。 考虑到上述问题的复杂性,开发者在遇到类似问题时,应当仔细阅读官方文档,了解各个模块的具体功能和依赖关系。同时,也可以参考社区论坛和开发者群体中的经验分享,了解他人是如何解决类似问题的。通过这些信息,开发者可以更快地定位问题所在,并采取有效的措施进行修复。 此外,与依赖管理紧密相关的是项目的持续集成和持续部署(CI/CD)流程。在这些流程中,依赖管理是非常重要的一环。良好的CI/CD实践可以帮助开发者更频繁、更快速地部署代码,同时也能够确保代码质量。因此,开发者也需要熟悉并应用这些现代软件开发的实践方法,以提升开发效率和软件质量。 对于遇到的技术问题,记录和总结是非常必要的。开发者在解决完依赖问题后,应当记录下解决问题的过程和最终方案,这样不仅可以帮助自己在未来遇到类似问题时快速解决,也可以为团队或社区中的其他开发者提供参考。 综合上述内容,可以看出,解决ruoyi-vue-pro项目中引入AI模块时遇到的报错问题,不仅需要对依赖项进行详细的检查和配置,还需要掌握与之相关的软件开发知识和工具使用经验。通过遵循正确的开发流程和最佳实践,开发者可以有效地解决这类技术问题,并提升项目的整体质量和开发效率。
2026-01-24 23:04:16 8KB 软件开发 源码
1
RuoYi-Vue-Postgresql对应SQL文件,博客原文地址https://blog.csdn.net/diyangxia/article/details/145675568?spm=1001.2014.3001.5501 RuoYi-Vue-Postgresql对应SQL文件是一组特定于RuoYi-Vue项目和Postgresql数据库的SQL脚本集合。RuoYi-Vue是一个基于Vue的前端框架,与Spring Boot和MyBatis等后端技术结合使用的前后端分离的企业级快速开发平台。Postgresql是一种对象关系型数据库系统,以其强大的功能、稳定性和灵活性受到开发者的青睐。在项目开发过程中,数据库设计和SQL脚本编写是不可或缺的部分,它们负责数据存储和业务逻辑的持久化。 由于RuoYi-Vue项目后端通常使用Java语言进行开发,而Postgresql作为数据库存储方案,因此需要一套完整的SQL文件来支持数据表的创建、修改、查询以及数据的增删改查操作。这些SQL文件通常包含但不限于以下几个方面的内容: 1. 数据库初始化脚本:包括创建数据库、设置字符集、创建模式等。 2. 数据表创建脚本:定义数据表的结构,包括表名、字段类型、索引、主键、外键以及默认值等。 3. 数据库权限设置:配置数据库用户权限,确保数据安全和访问控制。 4. 数据库性能优化脚本:可能包括索引优化、查询计划分析和调整等。 5. 数据库备份与恢复脚本:确保在数据丢失或损坏时,能够迅速恢复数据。 博客地址提供了关于这些SQL文件的详细信息和使用说明,这可以帮助开发者更好地理解如何使用这些文件来配置和维护基于RuoYi-Vue和Postgresql的项目数据库。开发者可以根据项目需求对SQL文件进行必要的修改和扩展,以适应不同的业务场景。 在数据库设计中,合理的数据表设计和高效的SQL语句对于提升应用性能、保证数据一致性和完整性至关重要。因此,开发团队需要仔细规划和编写每个SQL文件,确保它们能够满足应用程序的功能需求以及性能要求。同时,合理的数据库设计还可以降低后期维护的复杂性,提高系统的可扩展性和稳定性。 RuoYi-Vue-Postgresql对应SQL文件是开发团队在开发基于RuoYi-Vue和Postgresql数据库应用时的宝贵资源,它们不仅为项目提供了必要的数据库基础设施,还可能包含性能优化和维护的最佳实践,从而帮助开发者构建高效、稳定、可扩展的应用程序。
2026-01-06 15:06:14 13KB 数据库文件 sql
1
yudao ruoyi-pro 的 CRM 客户管理模块初始化 SQL 包含客户全生命周期管理核心表结构及基础数据,支持客户信息、商机、联系人及合同管理。资源涵盖客户表(crm_customer)、商机表(crm_business)、联系人表(crm_contact)、合同表(crm_contract),集成客户分群、跟进记录、公海池回收规则、合同审批流程等数据模型。内置示例客户数据、测试商机线索及合同模板,通过 crm_ 前缀表实现模块解耦。适配 Ruoyi 权限体系,提供角色-客户权限绑定、菜单路由初始化,支持客户分配流转、跟进时间线、销售漏斗分析及业绩统计功能,适用于企业销售管理、客户资源维护及跨部门协作场景快速搭建。
2025-12-18 17:31:48 70KB 客户管理 sql
1
ruoyi-wvp项目是一个基于ruoyi-vue和wvp框架的前端代码实现,专注于构建遵循GB/T 28181-2016标准的流媒体平台。GB/T 28181-2016标准是中国的一项国家标准,主要规定了基于IP网络的音视频监控系统与设备之间的信息交换、传输、控制和管理技术要求。该标准旨在推动不同厂商生产的监控产品和系统的互操作性,提高视频监控系统的整体性能和安全性。 ruoyi-wvp的前端开发采用了Vue.js框架的最新版本Vue 3。Vue.js是一个构建用户界面的渐进式JavaScript框架,它允许开发者通过简单的API使用数据驱动的视图。Vue.js以其响应式、组件化和灵活性受到广大前端开发者的青睐。Vue 3相对于Vue 2.x版本,新增了Composition API、更好的TypeScript支持、性能提升等诸多特性,使得Vue 3成为一个更加先进、高效和模块化的前端框架。 从压缩包文件名“ruoyi-ui-vue3”可以推测,其中包含了与UI(用户界面)相关的Vue3代码。这可能意味着项目的UI组件库已经针对Vue 3进行了优化或重新开发。在现代前端开发中,UI组件库是构建一致性和高效性用户界面的关键组件。这些组件库通常包含按钮、表单元素、布局组件和其他可复用的UI模块,它们通过封装好的代码库帮助开发者快速搭建界面和功能。 结合以上信息,可以了解到ruoyi-wvp前端代码库不仅遵循了流媒体监控平台的国家标准,还在前端技术栈中选用了当前流行的Vue 3框架,并且围绕着UI设计了一套适合Vue 3的组件库。这样的技术选型和架构设计使得ruoyi-wvp项目能够在实现流媒体平台功能的同时,保证良好的用户体验和系统的高效率。 ruoyi-wvp项目因其开源特性和流媒体平台的专业化,对于希望构建基于Vue 3和GB/T 28181-2016标准流媒体监控系统的开发者来说,无疑是一个宝贵的资源。开发者可以通过研究和使用ruoyi-wvp项目,加快自身项目的开发速度,同时确保系统的合规性和高效性。 此外,由于ruoyi-wvp项目使用了Vue 3,它还能够受益于Vue生态系统中不断涌现的工具和插件。Vue 3社区目前正处在高速发展期,每天都有新的库和工具被开发出来以支持Vue 3,这些资源将对ruoyi-wvp项目的维护和扩展带来极大的便利。 ruoyi-wvp前端vue3代码是流媒体平台开发领域的一个创新实例,它不仅采用先进的前端技术Vue 3,还遵循国家标准,为开发者提供了一个高效、专业和开源的流媒体监控平台前端代码库。
2025-12-07 19:34:51 7.15MB vue ruoyi
1
如意Uniapp(()_基于Ruoyi+Uniapp(前后端分离项目)实现学生考勤系统 学生考勤(口头点名签到、普通签到、位置签(自定义范围签到)、二维码签到、人脸识别签到、手势签到(九宫格)、签到码签到)等其他模块功能.zip 在当今教育领域,学生考勤管理是提高教学质量和加强学生管理的重要环节。随着信息技术的发展,传统的纸质签到和手动记录考勤方式逐渐被数字化、智能化的考勤系统所取代。利用现代化的考勤管理系统,不仅可以提升效率,还可以减少误差,实现更加科学的管理。 基于Ruoyi框架和Uniapp技术构建的学生考勤系统,是一个融合了前后端分离设计思想的解决方案。Ruoyi框架提供了一个稳定、可扩展的后端服务,而Uniapp则为前端提供了跨平台的能力,支持在不同操作系统和设备上提供一致的用户体验。该系统支持多种签到方式,包括但不限于口头点名签到、普通签到、位置签到、二维码签到、人脸识别签到、手势签到和签到码签到等,这些功能覆盖了学校在考勤管理上的多样化需求。 口头点名签到是最传统的签到方式,适合于小规模的教学场景,便于教师根据实际情况灵活处理。普通签到则是通过电子设备记录学生的签到时间,通常配合刷卡或者点击签到按钮实现。位置签到则通过地理信息系统,允许学生在预设的区域内完成签到,特别适用于校园内的户外教学活动。二维码签到通过生成唯一的二维码供学生扫描签到,实现高效且安全的签到机制。人脸识别签到则运用现代生物识别技术,通过学生的面部特征进行身份确认,从而完成签到,这种方式在安全性上有较高要求。 手势签到是一种较为新颖的签到方式,通过特定的手势动作进行签到,既增加了签到趣味性,也能够在一定程度上验证签到者的身份。九宫格手势签到通过用户在屏幕上的滑动轨迹来识别,为考勤增加了安全性和互动性。签到码签到是一种简单而广泛使用的签到方式,通过扫描特定的条形码或者二维码来完成签到,适合于不熟悉智能设备的学生使用。 开发学生考勤系统时,需要考虑系统的稳定性和易用性。系统应具备良好的用户界面,使教师和学生能够快速上手操作。同时,系统还应具备数据分析功能,通过收集的考勤数据,帮助教师分析学生出勤情况,提供辅助教学的决策支持。安全性和隐私保护也是设计考勤系统时不可忽视的因素,确保学生的个人信息安全和考勤数据的准确性。 考勤系统还应具备良好的扩展性和兼容性,以便于未来接入更多新兴技术和功能,如云计算、大数据分析等,为学校提供更加智能化的管理工具。随着技术的不断进步和教育理念的不断更新,学生考勤系统将在教育信息化中扮演越来越重要的角色。
2025-11-25 16:19:47 2.69MB
1
基于Ruoyi+Uniapp(前后端分离项目)实现学生考勤系统 学生考勤(口头点名签到、普通签到、位置签(自定义范围签到)、二维码签到、人脸识别签到、手势签到(九宫格)、签到码签到)等其他模块功能.zip 在当今数字化时代,学生考勤系统作为教育机构信息化管理的重要组成部分,对于提升教务管理效率和质量具有重要意义。近年来,随着技术的不断进步,基于Ruoyi框架结合Uniapp技术构建的前后端分离项目,在学生考勤系统的开发中显示出独特的优势。利用Ruoyi框架的高效开发能力和Uniapp的跨平台应用特性,可以为教育机构提供一个稳定、高效、易维护的学生考勤解决方案。 本系统支持多种签到方式,包括但不限于口头点名签到、普通签到、位置签到、二维码签到、人脸识别签到、手势签到以及签到码签到等。这些签到方式不仅满足了教育场景的多样性需求,还增强了系统的灵活性和易用性。例如,位置签到功能允许学生在自定义的地理范围内进行签到,这样既能确保签到的准确性,又能为一些特殊场景下的考勤提供便利。而人脸识别签到和手势签到则为考勤过程带来了高度的安全性和趣味性,增加了系统的互动性。 系统在设计时还充分考虑了易用性和用户体验,使其既适用于传统的PC端管理,也适应于移动端设备,方便教师和管理人员随时随地进行考勤管理和数据查询。此外,系统还具备数据分析和报表生成的功能,可以协助教育机构对考勤数据进行深入分析,从而为教学决策提供科学依据。 Ruoyi框架和Uniapp技术的结合,使得系统前后端分离,前后端团队可以独立开发,提高了开发效率和系统的可维护性。Ruoyi框架以其轻量级、易扩展和模块化的特点,使得后端开发更加高效;而Uniapp则以其强大的跨平台能力,让前端开发人员能够使用统一的开发语言和API完成多端应用的开发工作,极大地节约了开发成本。 值得一提的是,该系统还具备良好的扩展性和兼容性,可以轻松集成更多的功能模块,以应对未来可能的变化和需求的增长。这些功能的加入,不仅提升了系统的实用性,也为用户带来了更加丰富的体验。 在安全方面,系统采取了多种措施来确保数据的安全性和隐私性,包括但不限于数据加密、权限控制、安全审计等,以防止数据泄露或被非法访问。同时,系统还提供了日志记录功能,能够实时记录操作日志和系统日志,帮助管理人员追踪系统使用情况,及时发现并解决问题。 基于Ruoyi+Uniapp构建的学生考勤系统,以其实现方式的多样性、易用性、安全性和可扩展性,为教育机构提供了一个全方位、一体化的考勤管理解决方案,对于推动教育信息化进程具有重要的推动作用。
2025-11-25 16:14:46 2.69MB
1
在IT行业中,集成不同的软件和服务以提供更丰富的功能是常见的做法。本话题主要涉及的是将“ruoyi”框架与“cesium”和“supermap”进行集成,以实现地图的倾斜摄影加载功能。让我们详细探讨一下这些技术及其集成过程。 “ruoyi”是一个基于Java开发的企业级后台管理框架,它提供了快速开发、简洁易用的特点,广泛应用于企业信息化建设中。ruoyi框架通常包括前端界面和后端服务,为开发者提供了便捷的接口调用和数据管理工具。 “cesium”则是一个开源的JavaScript库,专门用于创建高性能的3D地球浏览器。它利用WebGL技术,能够在浏览器中展现全球范围内的高精度三维地形和卫星影像,支持交互操作和动态数据可视化。cesium在地理信息系统(GIS)领域中广泛应用,因为它可以轻松地构建丰富的2D和3D地图应用。 “supermap”是一家中国领先的GIS软件提供商,其产品线包括桌面应用、服务器软件和在线GIS服务。SuperMap iClient是其提供的一系列WebGIS开发组件,支持多种开发语言,如JavaScript、.NET、Java等。其中,SuperMap iClient for JavaScript可以与cesium结合,提供强大的地图服务,包括地形、矢量数据、二维地图和三维模型等。 集成ruoyi、cesium和supermap的关键步骤如下: 1. **引入库**:在ruoyi项目的前端部分,需要引入cesium的JavaScript库和supermap的JavaScript SDK。这通常通过CDN链接或者将库文件添加到项目中完成。 2. **配置地图服务**:在后端,你需要设置与supermap服务器的连接,获取地图服务的URL。这可能涉及到身份验证、地图层的选择以及获取地图数据的API调用。 3. **创建cesium视图**:在前端,利用cesium的`Cesium.Viewer`构造函数初始化一个地图视图,并指定容器元素。然后,可以通过`Cesium.WebMapServiceImageryProvider`或`Cesium.WebMapTileServiceImageryProvider`来加载supermap的地图服务。 4. **集成倾斜摄影**:倾斜摄影是通过多个角度拍摄建筑物,然后进行三维重建的技术,可以提供更真实的视觉效果。supermap提供了对倾斜摄影数据的支持,你需要根据具体的数据格式和API,将其集成到cesium中显示。 5. **交互与控制**:cesium提供了丰富的地图交互控件和事件处理机制,可以根据需求添加如缩放、平移、旋转等功能。同时,也可以通过supermap的API实现与后端数据的交互,如查询、标注等。 6. **优化性能**:由于cesium渲染3D场景可能消耗大量资源,因此在大型项目中,可能需要进行一些性能优化,比如分块加载、LOD(Level of Detail)层级细节管理等。 通过以上步骤,你可以成功地在ruoyi框架中集成cesium和supermap,实现地图的倾斜摄影加载。这种集成方式在房地产、城市规划、灾害监测等领域有着广泛的应用,能够提供直观且生动的地理信息展示。
2025-11-24 14:54:18 160.88MB ruoyi cesium supermap
1
ruoyi-vue: 127 3.8.6版本更新介绍.mp4 126 实现ehcache本地缓存.mp4 125 3.8.5版本更新介绍.mp4 124 实现多数据源增强.mp4 123 实现第三方授权登录.mp4 122 3.8.4版本更新介绍.mp4 121 3.8.3版本更新介绍.mp4 120 实现页面添加水印.mp4 ruoyi-cloud: 142 3.6.3版本更新介绍.mp4 141 3.6.2版本更新介绍.mp4 140 3.6.1版本更新介绍.mp4 139 3.6.0版本更新介绍.mp4 138 3.5.0版本更新介绍.mp4 137 3.4.0版本更新介绍.mp4 136 3.3.0版本更新介绍.mp4 135 3.2.0版本更新介绍.mp4 134 3.1.0版本更新介绍.mp4 133 定时任务实现详解.mp4 132 定时任务相关使用.mp4 131 代码生成实现详解.mp4 130 代码生成相关使用.mp4
2025-11-10 15:31:09 480B vue.js 微服务 java
1