亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SSM框架的在線教學(xué)系統(tǒng)的設(shè)計(jì)

        2019-05-05 03:31:32鄭逸凡
        關(guān)鍵詞:字段頁(yè)面框架

        鄭逸凡

        (福州外語(yǔ)外貿(mào)學(xué)院理工學(xué)院,福建 福州 350202)

        隨著科技的發(fā)展與社會(huì)的變遷,僅依靠傳統(tǒng)的課堂教學(xué)方式已無(wú)法幫助學(xué)生充分利用時(shí)間,保障高效學(xué)習(xí).本研究基于Spring+SpringMVC+MyBatis框架開發(fā)一套在線教學(xué)系統(tǒng).這一系統(tǒng)使得學(xué)生可以提前預(yù)習(xí)相應(yīng)課程內(nèi)容,課后及時(shí)地鞏固和復(fù)習(xí)已經(jīng)學(xué)過(guò)的知識(shí),更好地與老師和其他同學(xué)交流和互動(dòng),具有很好的實(shí)用價(jià)值.

        1 系統(tǒng)功能模塊劃分

        本系統(tǒng)為廣大學(xué)生搭建一個(gè)在線學(xué)習(xí)交流的平臺(tái),分為后臺(tái)管理和前臺(tái)教學(xué)這兩個(gè)子系統(tǒng).后臺(tái)管理系統(tǒng)的主要功能模塊有:管理員用戶管理、權(quán)限管理、角色管理、學(xué)科管理、班級(jí)管理、學(xué)習(xí)卡管理、篇章管理、段落管理;前臺(tái)教學(xué)系統(tǒng)的主要功能模塊有:用戶注冊(cè)登錄、查看學(xué)習(xí)卡、學(xué)習(xí)課程、查看問(wèn)題、提問(wèn)問(wèn)題、回答問(wèn)題、系統(tǒng)消息通知.

        2 系統(tǒng)技術(shù)架構(gòu)

        根據(jù)系統(tǒng)的功能、業(yè)務(wù)、用途、規(guī)模等特點(diǎn),在數(shù)據(jù)存儲(chǔ)訪問(wèn)方面,在經(jīng)典的MySQL關(guān)系數(shù)據(jù)庫(kù)的基礎(chǔ)上增加Redis緩存服務(wù)器,并且把文件的存儲(chǔ)、訪問(wèn)交給專門的文件服務(wù)器,視頻課程管理也交給專門的視頻服務(wù)器[1].

        系統(tǒng)使用maven管理項(xiàng)目結(jié)構(gòu),把整個(gè)項(xiàng)目拆分為7個(gè)工程模塊:第一個(gè)是parent模塊,該模塊是pom工程,主要用來(lái)統(tǒng)一管理依賴jar的版本,其他模塊都繼承此模塊;第二個(gè)是pojo模塊,該模塊是jar工程,包含了項(xiàng)目用到的pojo類;第三個(gè)是common模塊,該模塊是jar工程,主要包含工具類以及其他通用的類;第四個(gè)是mapper模塊,該模塊是jar工程,實(shí)現(xiàn)DAO層的功能;第五個(gè)是service模塊,該模塊是jar工程,實(shí)現(xiàn)service層的功能;第六個(gè)是admin模塊,該模塊是war工程,同時(shí)也是后臺(tái)管理系統(tǒng),包括controller層、jsp頁(yè)面、前端組件等;第七個(gè)是front模塊,該模塊是war工程,同時(shí)也是前臺(tái)系統(tǒng),包括controller層、jsp頁(yè)面、前端組件等.

        系統(tǒng)整體采用Spring+SpringMVC+MyBatis開發(fā)框架,前端主要采用Bootstrap、UEditor、layer、laypage等框架和組件,另外系統(tǒng)還采用了pageHelper、云存儲(chǔ)、云視頻等技術(shù).

        3 數(shù)據(jù)庫(kù)設(shè)計(jì)

        在本系統(tǒng)中,數(shù)據(jù)庫(kù)設(shè)計(jì)遵循統(tǒng)一的設(shè)計(jì)規(guī)范:每張表都有一個(gè)邏輯主鍵列id,即id bigint primary key auto_increment;使用中間表來(lái)表示兩張表的多對(duì)多關(guān)聯(lián)關(guān)系;對(duì)中間表的關(guān)聯(lián)關(guān)系進(jìn)行外鍵約束;對(duì)非中間表使用isDeleted列進(jìn)行軟刪除[2].比如權(quán)限管理模塊的相關(guān)表設(shè)計(jì)如下:

        管理員用戶表T_AdminUsers(id,account,passwordSalt,password,isDisabled,isDeleted);

        角色表T_Roles(id,name,description,isDeleted);

        權(quán)限表T_Permissions(id,path,description,isDeleted);

        管理員用戶和角色關(guān)聯(lián)表T_AdminUserRoles(id,adminUserId,roleId);

        角色和權(quán)限關(guān)聯(lián)表T_RolePermissions(id,roleId,permissionId).

        4 項(xiàng)目SSM框架整合

        系統(tǒng)admin模塊和front模塊均為war工程,繼承parent模塊,依賴service模塊,傳遞依賴common、mapper、pojo模塊,主要包含controller層的類、jsp頁(yè)面、前端組件、配置文件等.系統(tǒng)使用MyBatis作為持久層框架,配置文件為mybatis-config.xml;使用Spring作為bean容器,配置文件為beans.xml;使用SpringMVC作為前端MVC框架,配置文件為dispatcher-servlet.xml;在web.xml中初始化Spring和SpringMVC;使用log4j2作為日志實(shí)現(xiàn).例如,在web.xml中配置Spring容器的代碼如下:

        contextConfigLocation

        classpath:beans.xml

        org.springframework.web.context.ContextLoaderListener

        5 系統(tǒng)功能模塊實(shí)現(xiàn)

        整個(gè)項(xiàng)目采用統(tǒng)一的utf-8編碼,服務(wù)器采用tomcat8,在整個(gè)系統(tǒng)開發(fā)之前統(tǒng)一設(shè)置編碼過(guò)濾器,具體的操作是:在web.xml文件中配置Spring框架提供的CharacterEncodingFilter過(guò)濾器,對(duì)用戶的post請(qǐng)求和響應(yīng)進(jìn)行統(tǒng)一的字符編碼[3].

        5.1 parent模塊實(shí)現(xiàn)

        該模塊是pom工程,是其他模塊的父工程,主要用來(lái)管理依賴jar的版本,管理JDK編譯器版本等,例如pom.xml文件中MyBatis和Spring整合的依賴配置如下:

        5.2 common模塊實(shí)現(xiàn)

        該模塊是jar工程,主要包含一些通用的工具類和工具方法,其他模塊可以方便地共享這些工具類和方法,主要包括AjaxResult、ImageCodeUtils、EmailUtils、JsonUtils、JedisUtils、UploadUtils、CommonUtils等工具類.例如,JsonUtils類中的toJson方法可以把bean對(duì)象轉(zhuǎn)換為json字符串,核心代碼如下:

        private staticObjectMapper objectMapper = new ObjectMapper();

        public static StringtoJson(Object obj) {

        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

        objectMapper.setSerializationInclusion(Include.NON_NULL);

        try {

        returnobjectMapper.writeValueAsString(obj);

        } catch (JsonProcessingException e) {

        throw newRuntimeException(e);

        }

        }

        5.3 pojo模塊實(shí)現(xiàn)

        每張數(shù)據(jù)庫(kù)表對(duì)應(yīng)一個(gè)pojo類,表中的列和pojo類中的字段一一對(duì)應(yīng)(isDeleted字段除外);pojo類中基本數(shù)據(jù)類型的字段使用包裝類型進(jìn)行聲明;pojo類實(shí)現(xiàn)Serializable,并且使用id字段生成hashCode()和equals()方法;對(duì)于外鍵列對(duì)應(yīng)的類的字段的類型,使用基本類型(包裝類型);pojo類的字段類型不使用關(guān)聯(lián)的pojo類,也不使用集合類型的字段[4].

        5.4 mapper模塊實(shí)現(xiàn)

        首先聲明一個(gè)通用的IMapper接口,提供對(duì)數(shù)據(jù)庫(kù)表基本的增刪改查操作;然后聲明一個(gè)通用的IManyToManyMapper接口繼承自IMapper,提供對(duì)中間表的其他基本操作.非中間表的pojo類對(duì)應(yīng)的mapper接口直接繼承自IMapper接口,而中間表的pojo類對(duì)應(yīng)的mapper接口繼承自IManyToManyMapper接口.每個(gè)pojo類的mapper映射文件與mapper接口一一對(duì)應(yīng),主要提供了具體的數(shù)據(jù)庫(kù)操作實(shí)現(xiàn),比如SubjectMapper映射文件的主要內(nèi)容如下:

        5.5 service模塊實(shí)現(xiàn)

        首先聲明一個(gè)BaseService通用類,提供基本的增刪改查分頁(yè)排序功能;然后聲明一個(gè)ManyToManyBaseService通用類,繼承自BaseService,提供對(duì)中間表的其他功能;每個(gè)pojo類對(duì)應(yīng)一個(gè)Service類.

        BaseService類的成員變量mapper會(huì)自動(dòng)根據(jù)泛型T的具體值注入對(duì)應(yīng)的mapper對(duì)象,PageHelper是開源的分頁(yè)組件,BaseService類的部分代碼如下:

        public classBaseService {

        @Autowired

        privateIMapper mapper;

        public ListselectList(T pojo, String orderBy) {

        PageHelper.orderBy(orderBy);

        returnmapper.select(pojo);

        }

        }

        5.6 admin模塊實(shí)現(xiàn)

        該模塊主要完成的是系統(tǒng)的后臺(tái)管理,包括權(quán)限管理、學(xué)習(xí)卡管理、篇章和段落管理,總的設(shè)計(jì)思路是采用MVC的設(shè)計(jì)思想:首先利用前端框架制作頁(yè)面的靜態(tài)效果頁(yè),然后在控制器中編寫相應(yīng)的方法處理各種請(qǐng)求,當(dāng)請(qǐng)求處理完成后將響應(yīng)結(jié)果傳遞給視圖頁(yè)面進(jìn)行渲染[5].

        例如,當(dāng)要進(jìn)行學(xué)習(xí)卡的添加操作時(shí),需要讀取數(shù)據(jù)庫(kù)中現(xiàn)有的所有學(xué)習(xí)卡,首先制作出學(xué)習(xí)卡的列表頁(yè)面cardList.jsp,然后,在學(xué)習(xí)卡控制器CardController中編寫addPage方法,從數(shù)據(jù)庫(kù)中獲取學(xué)習(xí)卡對(duì)象集合,最終傳遞給cardList.jsp視圖頁(yè),addPage方法具體實(shí)現(xiàn)代碼如下:

        @RequestMapping(value = "/add.do", method = RequestMethod.GET)

        publicModelAndView addPage() {

        ListsubjectList = subjectService.selectList();

        ModelAndView modelAndView = new ModelAndView("card/add");

        modelAndView.addObject("subjectList", subjectList);

        returnmodelAndView;

        }

        admin模塊中學(xué)習(xí)卡管理的最終頁(yè)面效果如圖1所示:

        圖1 admin模塊最終效果圖

        5.7 front模塊實(shí)現(xiàn)

        該模塊主要完成的是系統(tǒng)的前臺(tái)功能,包括個(gè)人信息的管理、學(xué)習(xí)進(jìn)度的跟蹤、學(xué)生和老師之間的互動(dòng)等功能,該模塊總的設(shè)計(jì)思想與admin模塊相似,也是采用MVC設(shè)計(jì)思想.其中文件上傳的功能采用的是云存儲(chǔ)技術(shù),目的是為了降低主應(yīng)用服務(wù)器的處理壓力.利用云存儲(chǔ)進(jìn)行文件上傳的實(shí)現(xiàn)步驟是:首先獲得云存儲(chǔ)服務(wù)器的AccessKey和SecretKey,然后根據(jù)獲取的存儲(chǔ)空間所在區(qū)域創(chuàng)建相應(yīng)的配置對(duì)象,接著根據(jù)配置信息創(chuàng)建文件上傳管理對(duì)象,最后調(diào)用put方法把用戶選擇的文件上傳到云服務(wù)器上.文件上傳到云服務(wù)器的主要代碼如下:

        Setting bucket =settingService.selectOneByName("upload_bucket");

        SettingaccessKey = settingService.selectOneByName("upload_accessKey");

        SettingsecretKey = settingService.selectOneByName("upload_secretKey");

        Authauth = Auth.create(accessKey, secretKey);

        Zone z =Zone.autoZone();

        Configuration c = new Configuration(z);

        UploadManager uploadManager = new UploadManager(c);

        Response res =uploadManager.put(file, file.getName(), auth.uploadToken(bucket));

        front模塊為學(xué)生提供了在線提問(wèn)等功能,方便學(xué)生與老師實(shí)現(xiàn)互動(dòng)交流,比如學(xué)生在線提問(wèn)的最終頁(yè)面效果如圖2所示:

        圖2 front模塊中學(xué)生在線提問(wèn)頁(yè)面效果圖

        基于Spring+SpringMVC+MyBatis技術(shù)極大地提高了web系統(tǒng)的開發(fā)效率,對(duì)系統(tǒng)進(jìn)行分模塊設(shè)計(jì)有利于系統(tǒng)的擴(kuò)展性和可維護(hù)性.在線教學(xué)系統(tǒng)的最終呈現(xiàn)效果,頁(yè)面簡(jiǎn)潔、風(fēng)格統(tǒng)一,系統(tǒng)操作簡(jiǎn)單,能夠提供在線的學(xué)習(xí)和交流的功能.在線學(xué)習(xí)平臺(tái)不僅輕松解決了學(xué)習(xí)資料的共享問(wèn)題,而且極大地方便了學(xué)生利用碎片化的時(shí)間進(jìn)行學(xué)習(xí)和提高,師生之間的互動(dòng)性也明顯增強(qiáng).

        猜你喜歡
        字段頁(yè)面框架
        大狗熊在睡覺
        刷新生活的頁(yè)面
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        框架
        廣義框架的不相交性
        WTO框架下
        法大研究生(2017年1期)2017-04-10 08:55:06
        一種基于OpenStack的云應(yīng)用開發(fā)框架
        CNMARC304字段和314字段責(zé)任附注方式解析
        無(wú)正題名文獻(xiàn)著錄方法評(píng)述
        關(guān)于CNMARC的3--字段改革的必要性與可行性研究
        一品二品三品中文字幕| 日本美女中文字幕第一区| av影院在线免费观看不卡| 亚洲午夜福利在线视频| 北条麻妃在线视频观看| 日韩精品一区二区亚洲av性色| 精华国产一区二区三区| 欧美黑寡妇特a级做爰| 白嫩少妇激情无码| 最新永久免费AV网站| 亚洲第一区二区精品三区在线 | 4hu四虎永久免费地址ww416| 亚洲av中文无码乱人伦在线r▽| 日韩av一区二区毛片| 亚洲a级视频在线播放| 特黄aaaaaaaaa毛片免费视频 | 亚洲V在线激情| 国产午夜精品综合久久久| 吃奶摸下高潮60分钟免费视频| 国产乱妇乱子视频在播放| 久久99国产亚洲高清观看首页| 亚洲国产免费不卡视频| 婷婷五月婷婷五月| 亚洲综合中文字幕乱码在线 | 日韩av在线不卡一区二区 | 免费久久久一本精品久久区| 成年免费视频黄网站zxgk| 麻豆变态另类视频在线观看| 伊人久久亚洲综合av影院| 亚洲av无码码潮喷在线观看| 抽搐一进一出试看60秒体验区| 熟女系列丰满熟妇av| av影院手机在线观看| 久久国产劲暴∨内射| 亚洲人成网站久久久综合| 小池里奈第一部av在线观看| 久久精品无码av| 国产91色在线|亚洲| 日韩在线视频专区九区| 久久综合亚洲色一区二区三区| 久久精品一区二区免费播放|