




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
企業(yè)SaaS云應(yīng)用開發(fā)2知識(shí)目標(biāo)系統(tǒng)分析和設(shè)計(jì)搭建SSM開發(fā)框架01能力目標(biāo)了解企業(yè)進(jìn)銷存系統(tǒng)業(yè)務(wù)知識(shí)掌握系統(tǒng)色即的方法了解JavaWeb三個(gè)開發(fā)框架02學(xué)習(xí)目標(biāo)3目錄01系統(tǒng)分析和設(shè)計(jì)02搭建SSM開發(fā)框架03項(xiàng)目總結(jié)分析系統(tǒng)需求4SaaS企業(yè)進(jìn)銷存管理系統(tǒng)是一個(gè)以JavaWeb為核心開發(fā)技術(shù)的應(yīng)用系統(tǒng),該Web應(yīng)用實(shí)現(xiàn)企業(yè)進(jìn)銷存的租戶管理、貨物采購(gòu)、銷售、庫(kù)存管理、訂單管理等功能,完整闡述一個(gè)企業(yè)整個(gè)的運(yùn)營(yíng)過(guò)程,包括JavaWeb框架編程開發(fā)、數(shù)據(jù)可視化技術(shù)以及云平臺(tái)搭建和部署等重要內(nèi)容。分析系統(tǒng)功能5
企業(yè)SaaS進(jìn)銷存管理系統(tǒng)包括包含3類用戶角色:SaaS服務(wù)提供商企業(yè)管理員(后續(xù)簡(jiǎn)稱商戶管理員)、SaaS服務(wù)使用商企業(yè)管理員(后續(xù)簡(jiǎn)稱租戶管理員)、SaaS服務(wù)使用商企業(yè)普通用戶(后續(xù)簡(jiǎn)稱租戶用戶),不同用戶的功能如表5-1所示。系統(tǒng)名稱用戶一級(jí)功能二級(jí)功能企業(yè)SaaS進(jìn)銷存管理系統(tǒng)商戶管理員系統(tǒng)登陸系統(tǒng)登陸租戶管理租戶信息服務(wù)管理服務(wù)設(shè)置價(jià)格策略租戶管理員租戶注冊(cè)創(chuàng)建租戶系統(tǒng)登陸
租戶個(gè)人信息租戶信息查看租戶信息修改服務(wù)訂閱服務(wù)查看我的服務(wù)用戶配置用戶管理角色管理租戶用戶系統(tǒng)登陸系統(tǒng)登陸采購(gòu)管理
銷售管理
庫(kù)存管理
設(shè)計(jì)原型界面6分析了用戶的功能結(jié)構(gòu)后,就可以對(duì)項(xiàng)目進(jìn)行界面設(shè)計(jì)了,本項(xiàng)目的主要操作界面,如管理員登錄界面、進(jìn)銷存一體化管理員主頁(yè)、用戶登錄界面和進(jìn)銷存一體化用戶主頁(yè)如圖5-1至圖5-4所示。圖5-1管理員登陸界面圖5-2進(jìn)銷存一體化管理員主頁(yè)設(shè)計(jì)原型界面7圖5-3用戶登陸界面圖5-4進(jìn)銷存一體化用戶主頁(yè)制定技術(shù)架構(gòu)8本項(xiàng)目采用的是MVC三層架構(gòu)模式,架構(gòu)設(shè)計(jì)如下:三層架構(gòu)是指:視圖層view,服務(wù)層service,持久層Dao,它們的功能是:1.view層:用來(lái)接收用戶請(qǐng)求的代碼,比如請(qǐng)求如何分發(fā);2.service層:系統(tǒng)的業(yè)務(wù)邏輯主要寫在這里,比如借書系統(tǒng)會(huì)有借書的業(yè)務(wù);3.Dao層:直接操作數(shù)據(jù)庫(kù)的代碼,之所以分Dao層,主要是可能相同的sql語(yǔ)句可能使用在比較多的地方,改動(dòng)的時(shí)候可以理解為只改動(dòng)一處即可。為了降低耦合度,在這里,使用面向抽象編程,也就是上層對(duì)下層的調(diào)用,直接通過(guò)接口來(lái)完成,下層對(duì)上層的真正服務(wù)提供者,是下層實(shí)現(xiàn)的接口實(shí)現(xiàn)類,實(shí)現(xiàn)類是可以更換的,這就實(shí)現(xiàn)了層間的解耦合。架構(gòu)圖如圖5-5所示。圖5-5企業(yè)SaaS進(jìn)銷存系統(tǒng)項(xiàng)目的整體技術(shù)架構(gòu)制定技術(shù)架構(gòu)9SSM,即SpringMVC,Spring與Mybatis的統(tǒng)稱。1.SpringMVC:作為view的實(shí)現(xiàn)者,完成客戶請(qǐng)求的接受功能,它的controller作為整個(gè)應(yīng)用的控制器,完成用戶請(qǐng)求的轉(zhuǎn)發(fā)和對(duì)用戶的響應(yīng)。2.Mybatis:作為Dao的實(shí)現(xiàn)者,完成數(shù)據(jù)庫(kù)的增傷改查等功能。3.Spring:是整個(gè)應(yīng)用的大管家,整個(gè)應(yīng)用中所有的bean的生命周期行為,都是由Spring來(lái)管理的,就是說(shuō)整個(gè)應(yīng)用中所有的對(duì)象的創(chuàng)建,初始化,銷毀,以及對(duì)象之間關(guān)聯(lián)的關(guān)系維護(hù),都是由Spring來(lái)進(jìn)行管理。如下圖5-6所示圖5-6SSM實(shí)現(xiàn)MVC架構(gòu)圖框架介紹10SSM框架是由SpringMVC、Spring、Mybatis三大框架組成。(1)SpringMVCSpringMVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在SpringWebFlow里面。Spring框架提供了構(gòu)建Web應(yīng)用程序的全功能MVC模塊。使用Spring可插入的MVC架構(gòu),在使用Spring進(jìn)行WEB開發(fā)時(shí),能夠選擇使用Spring的SpringMVC框架或集成其他MVC開發(fā)框架,如Struts1(現(xiàn)在一般不用)、Struts2等。(2)SpringSpring是一個(gè)開放源代碼的設(shè)計(jì)層面框架,它解決的是業(yè)務(wù)邏輯層和其他各層的松耦合問(wèn)題,因此它將面向接口的編程思想貫穿整個(gè)系統(tǒng)應(yīng)用。Spring是于2003年興起的一個(gè)輕量級(jí)的Java開發(fā)框架,由RodJohnson創(chuàng)建。簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)分層的JavaSE/EE
full-stack(一站式)輕量級(jí)開源框架。(3)MybatisMyBatis是一款優(yōu)秀的持久層框架,它支持定制化SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。MyBatis避免了幾乎所有JDBC代碼、手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集的情況。MyBatis可以使用簡(jiǎn)單的XML或注解來(lái)配置和映射原生信息,將接口和Java的POJOs(PlainOldJavaObjects,普通的Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄。框架介紹114)SSM框架集SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis這3個(gè)開源框架整合而成,常作為數(shù)據(jù)源較簡(jiǎn)單的web項(xiàng)目的框架。SSM框架執(zhí)行流程如圖5-7所示.圖5-7SSM框架執(zhí)行流程創(chuàng)建系統(tǒng)工程12①參考任務(wù)4.5相關(guān)內(nèi)容新建一個(gè)Maven工程,選擇MavenProject,并設(shè)置好項(xiàng)目保存的目錄。②根據(jù)向?qū)?,在ArtifactID選擇maven-archetype-webapp,單擊“Next”按鈕,如圖5-8所示。圖5-8ArtifactID選擇創(chuàng)建系統(tǒng)工程13③在ArtifactID文本框中輸入“pss”,作為工程名稱,如圖5-9所示,最后單擊“Finish”按鈕,完成創(chuàng)建,工程目錄結(jié)構(gòu)如圖5-10所示。圖5-9設(shè)定工程名稱創(chuàng)建系統(tǒng)工程14圖5-10工程目錄結(jié)構(gòu)Maven引入SSM框架搭建需要的JAR包15在pom.xml中引入JAR包,代碼如下。<projectxmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>PSS</groupId><artifactId>PSS</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>PSS</name><url></url><properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <org.springframework.version>3.2.6.RELEASE</org.springframework.version> </properties><dependencies> <!--整合Spring框架--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework.version}</version> </dependency>
Maven引入SSM框架搭建需要的JAR包16<dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${org.springframework.version}</version> <type>jar</type> <scope>test</scope> </dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.7.2</version> </dependency><!--spring與Mybatis框架整合--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.2</version>
Maven引入SSM框架搭建需要的JAR包17</dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.0</version> </dependency> <!--c3p0數(shù)據(jù)庫(kù)連接池--> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version></version> </dependency> <!--Oracle、mysql數(shù)據(jù)庫(kù)驅(qū)動(dòng)--> <dependency> <groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId> <version>5.1.36</version> </dependency><!--log4j日志配置--> <dependency> <groupId>org.slf4j</groupId>
Maven引入SSM框架搭建需要的JAR包18<artifactId>slf4j-api</artifactId> <version>1.7.12</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.12</version> </dependency><!--POI--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.13</version> </dependency> <!--使用XSSF時(shí)添加,對(duì)高版本的支持--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.13</version> </dependency> <!--jfreechart--> <dependency>
Maven引入SSM框架搭建需要的JAR包19在pom.xml中引入JAR包,代碼如下。<groupId>jfree</groupId> <artifactId>jfreechart</artifactId> <version>1.0.13</version> </dependency><!--Junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency><!--commons組件配置--><dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.2</version></dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.0.1</version> </dependency> <!--JSTL配置-->Maven引入SSM框架搭建需要的JAR包20<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version></dependency><!--Servlet配置--> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> </dependencies> <build> <!--項(xiàng)目打包名稱--> <finalName>saas-pss</finalName> <plugins>
Maven引入SSM框架搭建需要的JAR包21<!--指定JDK1.7--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.0</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> <verbal>true</verbal> </configuration> </plugin> </plugins> </build></project>
框架整合22這次整合分了3個(gè)配置文件,分別是beans.xml(包含Spring和Mybatis的配置文件)、SpringMVC的配置文件springmvc-servlet.xml,以及Mybatis的映射文件sqlMapConfig.xml文件,此外有2個(gè)資源文件,分別是pertis和perties。完整目錄結(jié)構(gòu)如圖5-11所示。
圖5-11目錄結(jié)構(gòu)框架整合23①配置SpringMVC相關(guān)文件springmvc-servlet.xml<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:mvc="/schema/mvc"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd/schema/aop/schema/aop/spring-aop-3.0.xsd/schema/tx/schema/tx/spring-tx-3.0.xsd"> <!--1.掃描Controller--> <!--核心模塊--> <context:component-scanbase-package="com.cetc55.pss.core.controller"/><!--基礎(chǔ)信息模塊--> <context:component-scanbase-package="com.cetc55.pss.baseinfo.controller"/> <!--業(yè)務(wù)管理模塊--> <context:component-scanbase-package="com.cetc55.pss.cargo.controller"/> <!--系統(tǒng)管理模塊--> <context:component-scanbase-package="com.cetc55.pss.sysadmin.controller"/><!--租戶模塊--> <context:component-scanbase-package="com.cetc55.pss.multiTenant.controller"/><!--2.內(nèi)部資源視圖解析器--> <beanid="jspViewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <propertyname="prefix"value="/WEB-INF/pages"/> <propertyname="suffix"value=""/> </bean></beans>框架整合24②Spring和Mybatis的配置文件beans.xml內(nèi)容如下。<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance"xmlns:mvc="/schema/mvc" xmlns:context="/schema/context" xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd/schema/aop/schema/aop/spring-aop-3.0.xsd/schema/tx/schema/tx/spring-tx-3.0.xsd"> <!--1.加載數(shù)據(jù)庫(kù)配置屬性文件--> <context:property-placeholderlocation="classpath:perties"/><!--2.包掃描dao、service--> <!--核心模塊--><context:component-scanbase-package="com.cetc55.pss.core.dao,com.cetc55.pss.core.service"/> <!--基礎(chǔ)信息模塊--> <context:component-scanbase-package="com.cetc55.pss.baseinfo.dao,com.cetc55.pss.baseinfo.service"/><!--業(yè)務(wù)管理模塊--> <context:component-scanbase-package="com.cetc55.pss.cargo.dao,com.cetc55.pss.cargo.service"/> <!--系統(tǒng)管理模塊--> <context:component-scanbase-package="com.cetc55.pss.sysadmin.dao,com.cetc55.pss.sysadmin.service"/> <!--租戶模塊--> <context:component-scanbase-package="com.cetc55.pss.multiTenant.dao,com.cetc55.pss.multiTenant.service"/><!--3.數(shù)據(jù)源dataSource--> <beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"> <propertyname="driverClass"value="${jdbc.driverClassName}"/> <propertyname="jdbcUrl"value="${jdbc.url}"/> <propertyname="user"value="${jdbc.username}"/> <propertyname="password"value="${jdbc.password}"/> <propertyname="initialPoolSize"value="${c3p0.pool.initialPoolSize}"/> <propertyname="maxPoolSize"value="${c3p0.pool.maxPoolSize}"/> <propertyname="minPoolSize"value="${c3p0.pool.minPoolSize}"/> <propertyname="acquireIncrement"value="${c3p0.pool.acquireIncrement}"/> </bean><!--4.配置sqlSessionFactory--> <beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"> <propertyname="dataSource"ref="dataSource"/> <!--整合Mybatis--> <!--掃描配置文件--> <propertyname="configLocation"value="classpath:sqlMapConfig.xml"/> <!--掃描Mapper--> <propertyname="mapperLocations"value="classpath:com/cetc55/pss/*/mapper/*.xml"/> </bean><!--5.事務(wù)聲明--> <beanid="txManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <propertyname="dataSource"ref="dataSource"/> </bean><!--6.事務(wù)通知--> <tx:adviceid="txAdvice"transaction-manager="txManager"> <tx:attributes> <tx:methodname="insert*"propagation="REQUIRED"/> <tx:methodname="update*"propagation="REQUIRED"/> <tx:methodname="delete*"propagation="REQUIRED"/> <tx:methodname="save*"propagation="REQUIRED"/> <tx:methodname="find*"read-only="true"/> <tx:methodname="get*"read-only="true"/> <tx:methodname="view*"read-only="true"/> </tx:attributes> </tx:advice><!--事務(wù)切面--> <aop:config> <aop:pointcutexpression="execution(*com.cetc55.pss.*.service.*.*(..))"id="txPointcut"/> <aop:advisoradvice-ref="txAdvice"pointcut-ref="txPointcut"/> </aop:config></beans>框架整合25③Mybatis的映射文件sqlMapConfig.xml文件內(nèi)容如下。<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfiguration PUBLIC"-////DTDConfig3.0//EN" "/dtd/mybatis-3-config.dtd"><configuration> <typeAliases> <packagename="com.cetc55.pss.baseinfo.po"/> <packagename="com.cetc55.pss.cargo.po"/> <packagename="com.cetc55.pss.cargo.vo"/> <packagename="com.cetc55.pss.sysadmin.po"/> <packagename="com.cetc55.pss.sysadmin.vo"/> <packagename="com.cetc55.pss.multiTenant.po"/> <packagename="com.cetc55.pss.multiTenant.vo"/> </typeAliases> <!--注冊(cè)分頁(yè)攔截器--> <plugins> <plugininterceptor="com.cetc55.pss.core.pargination.PageInterceptor"> <propertyname="databaseType"value="mysql"/> </plugin> </plugins></configuration>框架整合26④Log4j的配置。Log4j是Apache的一個(gè)開放源代碼項(xiàng)目,通過(guò)使用Log4j,可以控制日志信息輸送的目的地是控制臺(tái)、文件、GUI組件,甚至是套接口服務(wù)器、NT的事件記錄器、UNIXSyslog守護(hù)進(jìn)程等。Log4j也可以控制每一條日志的輸出格式,并且通過(guò)定義每一條日志信息的級(jí)別,開發(fā)人員能夠更加細(xì)致地控制日志的生成過(guò)程。具體配置內(nèi)容請(qǐng)參看教材內(nèi)容??蚣苷?7⑤數(shù)據(jù)庫(kù)配置文件,perties文件內(nèi)容如下。jdbc.drive
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025YL合同管理寶石CD卷
- 2025制造工人勞動(dòng)合同
- 鋼筋班組施工合同
- 婚前以婚后財(cái)產(chǎn)歸個(gè)人所有協(xié)議
- 2025租房合同補(bǔ)充協(xié)議范本
- 2025年小型產(chǎn)權(quán)公寓買賣合同
- 《2025年勞動(dòng)合同續(xù)簽通知函》
- 2025合作協(xié)議及合同書范文
- 2025年廣州市辦公室租賃合同模板
- 婚介協(xié)議書范本模板
- 2025年AR眼鏡行業(yè)市場(chǎng)規(guī)模及主要企業(yè)市占率分析報(bào)告
- 日常小學(xué)生防性侵安全教育課件
- 浙江首考2025年1月普通高等學(xué)校招生全國(guó)統(tǒng)一考試 歷史 含解析
- 16J914-1 公用建筑衛(wèi)生間
- 教學(xué)課件:《新時(shí)代新征程》
- 廢氣治理設(shè)施運(yùn)行管理規(guī)程、制度
- 混凝土縫之宅
- TSG11-2020 鍋爐安全技術(shù)規(guī)程
- 警察查緝戰(zhàn)術(shù)講義
- 人教版八年級(jí)物理下冊(cè) 第八章 運(yùn)動(dòng)和力 練習(xí)題(含答案)
- 核電廠發(fā)變組繼電保護(hù)系統(tǒng)講座
評(píng)論
0/150
提交評(píng)論