《基于J2EE的开放式实验教学动态管理系统的研究与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于J2EE的开放式实验教学动态管理系统的研究与实现毕业论文.doc(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、中文摘要随着高校管理变革的逐步推进,实验室建设进一步规范化、复杂化,高校实验室管理工作也变得更加繁重和复杂。为了便利管理工作的展开,提高工作效率,利用计算机来进行辅助管理,以简化我们的工作,成为需要。本系统正是基于此而进行开发设计。系统分为三个主要模块管理员模块、教师模块和学生模块。管理员主要是对人员进行管理以及对一些系统参数进行设置;教师可以发布新实验、评阅学生实验结果以及对学生的疑难提问进行答复;学生可以查询实验、对实验进行预约、在预约的时间段内进行在线实验以及在做实验的过程中如果遇到疑难问题可以向教师提问。通过此系统使学生从封闭式的学习环境中脱离出来,为他们提供一个开放式的环境,学生可以
2、随时进行实验,这样也让实验室的设备得到充分的利用。 系统采用J2EE(Ajax+Spring+Struts2+Hibernate)框架和三层结构,完全B/S模式,纯面向对象思想(OOP),利用SQL Server 2000作为数据库管理工具,模块复用率高、系统维护代价小,方便、灵活、高效。关键词:开放式, 实验, 动态管理, Ajax, SS2HABSTRACTWith the changes in university management step by step, the development of laboratory become more standardized and com
3、plicated, the job of University laboratory management has become more arduous and complicated. In order to facilitate the management and improve work efficiency, using compute-assisted management to simplify our work, become necessary. Thats why the system is developed. System is divided into three
4、main modules - administrator module, teacher module and student module. Administrator is the manager of all the users, as well as set a number of system parameters; teachers can add new experiment, mark experiment results of students, and answer students questions; students can search for experiment
5、, book experiment, experiment between the time period when student book online and when come across problems in the course experiments they can question teachers. With this system so that students from the closed out from the learning environment by providing them with an open environment, students
6、can experiment anytime, so that the laboratory equipment also can be fully utilized.The System uses J2ee frameworks(Ajax + Spring + Struts2 + Hibernate) and the three-tier structure, complete B/S model, pure object-oriented thought, and using the SQL Server 2000 as a database management tool, it is
7、high of module reusability, and it is small of the cost in system maintenance, it is convenient, flexible and efficient.Key words:open, experiment, dynamic manage, ajax, ss2h目录第1章绪论11.1课题背景11.2开发技术11.2.1Jsp技术11.2.2. Spring技术21.2.3. Struts2技术31.2.4. Ajax技术31.2.5. jQuery框架31.2.6. Hibernate技术31.3. 开发工具
8、41.3.1 Eclipse41.3.2. SQL Server 200041.3.3. Power Designer41.3.4. StarUML5第2章 系统需求分析62. 系统可行性分析62.1.1. 技术可行性62.1.2. 经济可行性62.1.3. 操作可行性62.2. 系统功能需求分析7第3章 系统设计83.1. 系统功能设计83.2. 系统总体设计83.3. 数据库概要设计93.3.1. 逻辑设计93.3.2. 逻辑设计143.3.3. 物理设计154.1. 数据库连接实现164.2. 事务管理实现174.3. 管理员功能模块实现174.3.1. 人员管理功能实现174.4. 教
9、师功能模块实现204.4.1. 实验结果评阅功能实现204.5. 学生功能模块实现224.5.1. 实验预约功能实现224.5.2. 疑难提问功能实现234.5.3. 实验结果提交功能实现25第5章 技术创新275.1. 权限管理子系统275.2. 页面导航子系统295.3. 分页解决方案315.4. URL加密子系统335.5. Ajax技术的使用35第6章 系统安全性376.1. 权限管理376.2. 安全性处理37总 结40附录41参考文献42致谢43IV一级标题:黑体16磅加粗居中,单倍行距,段前24磅,段后18磅, 章序号与章名间空一个汉字符页眉:宋体10.5磅居中,Abstract
10、部分用Times New Roman 10.5磅第1章绪论二级标题:黑体14磅加粗顶左,单倍行距,段前24磅,段后6磅,序号与题名间空一个汉字符1.1课题背景开放式实验教学是针对传统的封闭式教学而言的,为了能让学生有充分发挥主观能性,实现自我优势的机会,把学生从封闭式的学习环境中解脱出来,为他们提供一个充分开放和自由的学习环境,提供更为丰富的实验内容和更加充足的实验时间。其最终目标是培 养学生的动手操作能力和创新精神,提高学生的专业技能和综合素质。段落文字:宋体12磅(英文用Times New Roman体12磅),两端对齐书写,段落首行左缩进2个汉字符。行距1.25倍(段落中有数学表达式时,
11、可根据表达需要设置该段的行距),段前0磅,段后0磅。许多高校都已经实施了开放性实验室。开放性实验最大的优点是学生可根据自己学习情况、兴趣、时间来预约实验,并且使得实验设备得到最有效的应 用。但是,目前开放性实验的预约大多还采用人工或单机版的管理软件进行管理,因而存在工作烦琐,效率低下等弊端。例如,学生不能及时了解开放性实验内容以 及实验时间的信息;学生必须到实验室去预约,由实验室教师登记;有时学生因为忘记已经预约的时间,以至重复到教师处查询:退约仍然必须由学生到实验室申 请,实验室教师同意后,还要修改预约登记表,重新统计该次实验设备的闲置情况并通知学生,以便其他学生选做。这些问题的出现都不是开
12、放式教学所愿意见到的1。因此,开放性实验室网上管理系统的开发和应用具有显著的现实意义。参考文献标识:用方括号括上,并与参考文献相对应,方括号中的数字Times New Roman体12磅。这里的开放式包含以下四个方面:第一,实验室实行开放管理,学生结合自己学习安排和实验室预约实验时间,实现实 验时间开放;第二,准备足够多的实验项目和实验项目组合,实现实验内容开放;第三,进行设计性实验时,由学生自己设计不同的实验方案,同一个实验可以由学 生在实验室独立采用不同的实验方案完成,实现实验过程开放;第四,开发了网上开放式实验教学应用系统,实现实验教学的网上开放。三级标题:黑体13磅加粗顶左,单倍行距,
13、段前12磅,段后6磅,序号与题名间空一个汉字符1.2开发技术1.2.1Jsp技术Jsp(Java Server Pages),是Sun公司开发的一种动态网页开发技术,它具有如下一些特点:l 简便性和有效性 页码:Times New Roman 10.5磅,加粗,居中放置JSP动态网页的编写与一般的静态HTML的网页编写是十分相似的。只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序(此项不是必需的)。这样,一个熟悉HTML网页编写的设计人员可以很容易进行JSP网页的开发。而且开发人员完全可以不自己编写脚本程序,而只是通过JSP独有的标签使用别人已写好的部件来实现动态网页的编写
14、。这样,一个不熟悉脚本语言的网页开发者,完全可以利用JSP做出漂亮的动态网页。而这在其他的动态网页开发中是不可实现的。l 程序的独立性JSP是Java API家族的一部分,它拥有一般的Java程序的跨平台的特性。换句话说,就是拥有程序的对平台的独立性,即Write once,Run anywhere!。l 程序的兼容性 JSP中的动态内容可以各种形式进行显示,所以它可以为各种客户提供服务,即从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备(例如,移动电话和个人数字设备PDA),再到使用XML的B2B应用,都可以使用JSP的动态页面。l 程序的可重用性 在JSP页面中可以不直接
15、将脚本程序嵌入,而只是将动态的交互部分作为一个部件加以引用。这样,一旦这样的一个部件写好,它可以为多个程序重复引用,实现了程序的可重用性。现在,大量的标准JavaBeans程序库就是一个很好的例证。1.2.2. Spring技术Spring是一个由Rod Johnson创建,为了简化企业及系统开发而诞生的开源框架。使用Spring,可以使用简单的javabeans来实现那些以前只有EJB才能实现的功能。简单的说,Spring是一个轻量级的Ioc和AOP 容器 框架。它具有以下一些特点:l 轻量级无论从大小还是系统开支来说,Spring都算是轻量级的。整个Spring框架也就是1M多一点的Jar
16、包。Spring的处理开支也非常小。它是非侵入式的:基于Spring开发的系统的对象一般不依赖于Spring的类。l 控制反转(Ioc)使用Ioc,对象是被动接受依赖类,而不是主动去寻找。这点和JNDI恰好相反。也就是在容器实例化对象的时候主动将它的依赖注入给它。所以说Spring是通过Ioc(控制反转)来实现依赖注入的。Ioc意味着关于对象如何得到它的协作对象的责任反转了!l 面向切面(AOP)通过AOP,将我们的业务逻辑从系统服务(事务管理,Log日志)中分离出来,将我们的关注点只放在业务逻辑部分。在需要系统服务的地点,时间再将系统服务注入进来。l 容器Spring是一个容器,是因为它包含
17、并且管理系统对象的生命周期和配置。可以通过配置来设定你的Bean是单一实例(singleton)还是每次请求产生一个实例(prototype).l 框架使用简单的组件配置组合成一个复杂的系统。也就是说,通过XML文件配置,要什么有什么!1.2.3. Struts2技术Struts 2框架是Struts 1的替代版本,Struts 2框架整合了Struts 1框架和WebWork框架的优点。相对Struts 1,Struts 2已经有了非常大的改变,去掉了ActionForm,降低了框架组件之间的耦合性,Struts 2的Action只是普通的Java类(POJO),给模块测试工作带来了极大的方
18、便。Struts 2提供了强大的整合能力,支持多种返回结果类型,改进了Struts 1的标签库,引入OGNL表达式和值栈的概念,给开发者带来了更好的体验。1.2.4. Ajax技术Ajax是结合了Java技术、XML以及JavaScript等编程技术,可以让开发人员构建基于Java技术的Web应用,并打破了使用页面重载的惯例。 Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。1.2.5. jQuery框架jQuery是继p
19、rototype之后又一个优秀的Javascrpt框架。其宗旨是WRITE LESS,DO MORE,写更少的代码,做更多的事情。其具有如下特点:l 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器。l jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。l jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。l jQuery能够使用户的html页保持代码和html内容
20、分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。1.2.6. Hibernate技术Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。1.3. 开发工具1.3.1 Eclipse集成开发环境(Integrated Deve
21、lopment,简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、debug功能等一体化的开发软件套。所有具备这一特性的软件或者软件套(组)都可以叫做IDE。Eclipse只是一个框架软件,本身不能开发程序,但它可以安装各种插件。正是运行在Eclipse平台上的种种插件,提供了程序开发的各种功能。同时各个领域的开发人员通过开发插件,可以构建与Eclipse环境无缝集成的工具。Eclipse是一个非常成功的开源项目,相对比Borland公司的王牌JBuilder来说,拥有绿色软件、免费、插件多、功能强大
22、等优点,相对于现阶段的开发来说,使用Eclipse作为开发工具是最好的选择。Eclipse是绿色软件,其下载与安装非常简单,但是如果需要使用Eclipse来开发J2EE,为了提高开发的效率,可以下载MyEcilpse插件或者Lomboz插件,其中Myeclipse是收费软件,可以直接下载exe进行安装,而Lomboz是开源插件,其使用是完全免费的。1.3.2. SQL Server 2000SQL Server 2000 是Microsoft 公司2000年推出的SQL Server 数据库管理系统的版本。它是一个杰出的数据库平台,可用于大型联机事务处理、数据仓库、以及电子商务等。 其特点如下
23、:l 真正的客户机/服务器体系结构。 l 图形化用户界面。 l 丰富的编程接口工具。 l SQL Server与Windows NT完全集成。 l 具有很好的伸缩性。 l 对Web技术的支持。 l SQL Server提供数据仓库功能。1.3.3. Power DesignerPowerDesigner工具是Sybase公司开发的一种企业建模和设计解决方案,采用模型驱动的方法,将业务与IT结合起来,可帮助部署有效的企业体系架构,并为研发生命周期管理提供强大的分析与设计技术。PowerDesigner独具匠心地将多种标准数据建模技术(UML、业务流程建模以及市场领先的数据建模)集成一体,并与 .
24、NET、WorkSpace、PowerBuilder、Java、Eclipse 等主流开发平台集成起来,从而为传统的软件开发周期管理提供业务分析和规范的数据库设计解决方案。此外,它支持60多种关联式数据库管理系统(RDBMS)版本。1.3.4. StarUMLStarUML是一个开源的UML建模工具,它遵守GNU GPL开源条约,StarUML项目宣称的目标是代替大型的商业UML工具软件,如IBM的Rational Rose,Borland公司的Together。它具有如下一些特点:l 可绘制多种UML图:用例图、类图、时序图、状态图、活动图等。l 完全免费:StarUML是一套开放源码的软件
25、,不仅免费自由下载,连代码都免费开放。l 可导出多种格式图片:JPG、JPEG、BMP等格式的图片文件。l 正反向工程:StarUML可以依据类图的内容生成Java、C+、C#代码,也能够读取Java、C+、C#代码反向生成类图。反向工程有两个主要用途,其一是旧有的源码反转成图之后,可以构建UML模型的方式继续将新的设计添加上去;另一项用途是想要解析源码时,可以通过反转的类图来理解,不再需要查看一行又一行的代码,这将节省大量的时间和精力。l 导入Rose文件:StarUML可以读取Rational Rose生成的文件,让原先Rose的用户可以转而使用免费的StarUML。第2章 系统需求分析2
26、. 系统可行性分析系统的可行性分析主要是技术可行性,经济可行性,操作可行性。2.1.1. 技术可行性系统采用Spring、Struts2、Hibernate和Ajax进行开发,目前,采用Spring、Struts和Hibernate这个经典组合进行系统开发的技术已经非常成熟,很多企业已经采用了这一经典结构开发出了相当优秀的系统,而作为Struts的后续版本的Struts2,从WebWork演化而来,其本身是一个非常成熟的框架,虽然整个框架与Struts有较大的区别,但其相比起Struts使用更加方便,在不久的将来将取代Struts。Ajax又因为其优秀的用户体验在最近吸引了大量的开发者使用这一
27、技术,使用Ajax,可以让系统界面更加人性化。由于以上几个框架都是开源框架,网络上存在着大量的文档及例子,还有很多使用者经验可供借鉴,让使用这些技术开发此系统成为可能。2.1.2. 经济可行性现在的网络教学管理系统大部分还处于手工阶段,手工劳作不仅耗费了大量的时间,人为出错的几率也比较大,这势必将影响到整个实验教学的质量,一个错误甚至可能给学生和老师带来很大的影响,直接影响到学生的成绩。因此,建立一个合理的实验教学管理系统既要体现投资效益原则,也要保证系统质量和性能,尽量使用性能价格比比较高的硬件和软件,从而达到节约投资和增加效益的目的。基于B/S模式的管理信息系统便是最佳的选择,利用先进的计
28、算机网络通信技术和强大的JAVA语言体系进行开发,不仅能提供一致的用户界面,还能实现客户端零配置和客户端平台无关性;服务器端是系统开发、维护和升级的所在,能够较容易地升级、扩展和集成系统。这样,在提高了学生和教职工工作效率的同时,也减轻了学校在信息管理工作方面的开销。开发此系统的价值远远超过了开发系统的成本,因此,进行此项开发是可行的。2.1.3. 操作可行性随着Internet的日益普及以及相关技术的发展,B/ S(浏览器/服务器)模式逐渐成为现代MIS的首选方案。B/S模式是一种从传统的二层C/S(客户机/服务器)结构发展起来的新的网络结构模式。它的出现克服了C/S模式下MIS系统的种种缺
29、陷,如:客户端软件过于庞大,维护困难;客户端应用系统依赖于其应用平台;系统相对封闭,同一应用系统需要多种操作系统版本;各个企业或部门的MIS没有标准的用户界面和操作流程,使用前需要专门培训,不利于推广和普及等等。它还极大地改变了基于C/S结构模式的MIS的结构设计、开发环境和应用环境,成为具有良好经济效益且易于推广的结构模式。在B/S模式下,用户只需要在自己的办公地点,通过浏览器就可以和远端服务器进行通讯,操作十分简便、快捷,并且不受地点的约束。随着网络技术的日新月异,网络技术的应用已经进入了我们生活的每一个方面,网络给我们的学习和生活带来了极大的便利。在现在的学校中,几乎每一个细节都被网络技
30、术所渗透,无论是选课还是成绩的发布与查询,都是通过网络来进行,这极大地方便了广大的师生,也极大地节约了教学的成本。与传统的实验教学管理系统相比,网络管理系统有着交流方便,操作简单等许多优点,它给老师和学生都带来了极大的便利。2.2. 系统功能需求分析作为实验教学管理系统,首先需要具有选题的功能,学生在登陆以后可以对现有的实验题目进行查看,在确定自己感兴趣的试验题目后可以进行预约的操作。为了方便学生的选题,在选题的页面具有查询的功能,但查询只针对本专业学生的实验,可以通过题目或者是教师进行查找,方便学生的选题需要。学生预约了实验以后再做完实验得出结果之后,可以将实验结果上传至服务器,以方便老师的
31、查看,在遇到困难的时候可以通过向老师提问来寻求解决方案。管理员也可以通过添加来增加学生和教师的基本信息,以应付突发的事件。而且管理员必须设置第一周的开始日期,以及一个学期的周数。教师在本系统中的主要任务是添加实验,察看学生实验结果,以及对学生的提问及时回答。当老师有了增加新实验的准备以后可以将新实验的信息提交给系统,供管理员审查。教师可以对学生提交的实验结果进行查看,并对学生提出的问题进行及时解答。第3章 系统设计3.1. 系统功能设计整个系统分为三个基本模块:学生模块、教师模块及管理员模块。其中学生模块有以下功能:l 查看本专业实验:可查看教师发布的本专业的实验。l 预约实验:可预约本专业的
32、某个实验。l 在线实验:在预约的时段时在线实验,并把实验结果提交到网上。l 疑难提问:在实验的过程中如果遇到什么问题可以向教师提问。l 查看实验结果:当教师已经评阅完该学生的实验时可上网查询相应的实验结果。教师模块有以下功能:l 发布实验:可以添加一个新的实验,并把该实验发布到某个年级专业班级里。l 修改年级专业班级信息:可以增删改年级专业班级信息。l 修改学生信息:增删改学生的信息。l 评阅实验:可以评阅该教师发布的实验。l 回答学生提问:回答学生在实验中遇到的问题。l 搜索并统计:可以按多种条件进行搜索统计,如搜索学生、搜索实验等,统计完成某个实验的人数、未完成人数等。管理员模块:l 修改
33、年级专业信息:可以增删改年级专业信息。l 修改教师信息:可以增删改教师信息。l 修改学生信息:可以增删改学生信息。l 系统设置:可以设置本周的开始日期、一共多少周等系统参数。3.2. 系统总体设计系统功能结构图开放式实验动态管理系统学生模块教师模块管理员模块发布实验修改年级专业班级评阅实验回答学生提问修改个人信息修改学生信息修改年级专业班级信息修改教师信息修改学生信息系统设置修改个人信息搜索及统计本班实验查询预约实验在线实验疑难提问查看实验结果相应的系统用例图如下:图题:置于图的下方,宋体10.5磅居中,单倍行距,段前6磅,段后12磅,图序与图名文字之间空一个汉字符宽度图1系统功能结构图图2
34、教师用例图 图3 学生用例图 图4 管理员用命图3.3. 数据库概要设计3.3.1. 逻辑设计系统包含以下几个表:admin:管理员表,记录管理员信息teacher:教师表,记录教师信息student:学生表,记录学生信息course:课程表,记录课程信息experiment:实验表,记录实验信息stuinfo:年级专业班级表,记录年级、专业、班级等信息result:实验结果表,记录学生的实验结果question:问题表,记录学生的疑难问题term:学期表,记录学期信息,例如开始日期,一共多少周等表格标题:置于表的上方,宋体10.5pt居中,单倍行距,段前6磅,段后6磅,表序与表名文字之间空一
35、个汉字符宽度booktime:预约时间段booking:预约表,记录学生的预约信息history:实验记录,记录学生的在线实验信息数据字典表.1系统管理员(admin)字段类型长度说明aIdString32主标识aNameString 20用户名aPwdString 30密码表.2教师(teacher)tIdString32主标识tNoString15教师编号tNameString 20用户名tPwdString 30密码tEmailString 30邮件地址表.3学生(student)sIdString 32主标识sInfo_idString 32信息号sNoString 15学号sName
36、String 20姓名sSexString2性别sPwdString30密码sEmailString30邮件表4 实验课程(course)cIdString10cNameString30课程名称cTeacher_idString10教师id表5 实验(experiment)eIdString32主标识eInfo_idString32信息号eTeacher_idString32教师号eCourse_idString10实验课程ideNameString20实验名称eInfoString200实验描述eDescString1000实验具体内容eResultString500实验结果eAttachm
37、entString100附件(仅为路径)eEnddateDate有限期(超过不允许预约)eResultAttachString100实验结果附件(仅为附件路径)eBookingBoolean允许预约否ePublishBoolean是否发布实验结果表6 信息表(stuinfo)siIdString32siGradeString10年级siProString50专业siClass班级20班级表7 实验结果(result)rIdString32rEx_idString32实验号rStu_idString32学生idrResultString1000实验结果rResultattachString100
38、附件rSocreInt3分数rRemarkString500教师评语rStateInt2状态(已阅、未阅)表8 问题(question)qIdString32qTo_qidString32回复的问题号,如不是回复则为空qEx_idString32实验号qTitleString50标题qContentString500内容qDateDate时间qPublisherString20发布者qStateInt2状态(未查看、已查看)表9 学期时间(term) tIdString32tTotalweekInt2总周数tStartdateDate第一周开始日期表10 预约时间段(booktime)btId
39、String32btTimeTime时间btMaxbookInt4最大预约人数表11 预约表(booking)bIdString32bStu_idString32学生idbEx_idString32实验idbTimeString 30预约时间bBookdate_idString32预约时间段idbStateInt2状态(未实验、已实验)表12 进行实验信息(history)hIdString32hStu_idString32学生idhExp_idStrig 32实验idhStarttimeTime实验开始时间hEndtimeTime实验结束时间3.3.2. 逻辑设计图5 数据库逻辑设计3.3.
40、3. 物理设计图6 数据库物理设计第4章 系统实现4.1. 数据库连接实现数据库采用开源的C3P0数据库连接池进行连接,其在Spring中的核心连接代码如下:其中jdbc.properties的内容如下:jdbc.driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriverjdbc.url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=labjdbc.username=sajdbc.password=sajdbc.max=40jdbc.min=1jdbc.init=1jdbc.maxIdelTime=20通过把连接信息写在另一个文件,可以有利于信息的修改,这样,如果把系统换用其他的数据库或者移植到其他的平台,只需要修改jdbc.properties的数据库连接信息即可,而且把连接信息写于一个单独的文件,可以把连接信息进行加密,从安全性来说也让系统更加安全了。4.2. 事务管理实现采用Spring的事务管理机制,让Spring负责底层的事务管理,其核心代码如下: PROPAGATION_REQUIRED,readOnly PROPAGATION_REQUIRED,readOnly PROPAGATION_REQUIRED,readOn