欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

SSM整合,個(gè)人總結(jié)和step-創(chuàng)新互聯(lián)

我最近才整合完SSM。

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到橋西網(wǎng)站設(shè)計(jì)與橋西網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋橋西地區(qū)。

前段時(shí)間,分開(kāi)學(xué)習(xí)了這三個(gè)框架,都是看某黃埔軍校的視頻,整合的部分沒(méi)看視頻,想自己做。

但是有一些部分自己沒(méi)有能完成,主要是如何從spring容器里取出ApplicationContext,這個(gè)我的實(shí)現(xiàn)比較low,看了看講義,才OK的。

我的實(shí)現(xiàn):

[java] view plain copy
WebApplicationContext acc = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
ls = (LoginService) acc.getBean("MyService");
而講義上的實(shí)現(xiàn):

[java] view plain copy
@Autowired
@Qualifier("MyService")
private LoginService ls;

public void setLs(LoginService ls) {
this.ls = ls;
}
這里的區(qū)別呢,是我的實(shí)現(xiàn)在spring中還要注冊(cè)MyService,雖然下面的寫(xiě)法我貌似。。。沒(méi)學(xué)過(guò)?好吧應(yīng)該就是注解實(shí)現(xiàn)。

這里放上我的Step,給自己看看,就當(dāng)復(fù)習(xí)了。

[plain] view plain copy
2018年5月9日13:08:51

今天寫(xiě)SSM整合

1.建立項(xiàng)目,添加spring5\springMVC5\Mybatis3的maven

2.寫(xiě)spring、springmvc、mybatis的配置文件
2.1 spring配置文件,約束,哪里來(lái)?
源碼中可以找sxd約束文件,這個(gè)的話(huà)我在
E:\2017下學(xué)期\spring-framework-5.0.5.RELEASE-dist\spring-framework-5.0.5.RELEASE\docs\spring-framework-reference
找到了,一個(gè)bean,一個(gè)context
2.2 spring配置文件,導(dǎo)入beans和database
2.3 spring-bean 我先創(chuàng)建一個(gè)實(shí)體類(lèi)Person,再注冊(cè)(注冊(cè)了沒(méi)用)
2.4 spring-db 我這里創(chuàng)建數(shù)據(jù)源,但是alt+/出不來(lái)提示,我一想,mysql的包沒(méi)載入,在maven中加入
還是沒(méi)得,恩,我加了jdbc的包,還是沒(méi)有,我以為是沒(méi)有源碼,下載了,還是沒(méi)有提示,棒
沒(méi)有提示,我追了下源碼,找set方法,我知道有4個(gè),所以找得到,除此之外,還有一些其他屬性可以設(shè)置
編寫(xiě)jdbc_mysql.properties文件,并導(dǎo)入
2.5 spring-bean 注冊(cè)dao,這個(gè)是spring集成mybatis,注冊(cè)sqlSession
這里就要導(dǎo)入mybatis和spring的整合包了,這里sqlsession中也要導(dǎo)入mybatis的配置文件
2.6 spring-bean 配置mapper自動(dòng)掃描
MapperScannerConfigurer將掃描basePackage所指定的包下的所有接口類(lèi)(包括子類(lèi)),
如果它們?cè)赟QL映射文件中定義過(guò),則將它們動(dòng)態(tài)定義為一個(gè)Spring Bean,
這樣,我們?cè)赟ervice中就可以直接注入映射接口的bean
意思就是可以直接ref="dao類(lèi)名",給你自動(dòng)注冊(cè)好了
2.7 寫(xiě)mybatis的配置文件,一個(gè)別名,一個(gè)映射
約束去×××?dtd文件
2.8 寫(xiě)spring mvc配置文件,其實(shí)就是掃描controller
2.8 到這里,配置文件就寫(xiě)完了,這里注意的是,java代碼沒(méi)開(kāi)始寫(xiě),只是定義了幾個(gè)包,dao\service\beans
-------------配置部分完成---------------------

3.編寫(xiě)service類(lèi)和對(duì)應(yīng)的dao
3.1 寫(xiě)loginservice接口
3.2 寫(xiě)實(shí)現(xiàn)類(lèi),其中有person的dao
3.3 寫(xiě)persondao,也是個(gè)接口
3.4 在spring-bean中注冊(cè)接口

4.編寫(xiě)dao對(duì)應(yīng)的mapper
4.1 這里的namespace直接為對(duì)應(yīng)dao類(lèi)的限定名
4.2 mapper中的id和類(lèi)中方法id一致
4.3 參數(shù)傳遞,用#{}
-------------mybatis部分完成---------------------

4.編寫(xiě)controller
4.1 這里我寫(xiě)了個(gè)basecontroller用于獲得applicationContext
4.2 就按照一般的,寫(xiě)了login

5.寫(xiě)jsp
5.1 寫(xiě)index
5.2 寫(xiě)welcome,成功

6.在web.xml中注冊(cè)spring\springmvc
6.1 開(kāi)啟監(jiān)聽(tīng)事件
6.2 注冊(cè)spring
6.3 注冊(cè)springmvc

7.跑程序
失敗了1:datasource創(chuàng)建失敗,讀不到驅(qū)動(dòng),先把字符串填進(jìn)去
失敗了2:mybatis的config和mapper頭中不能出現(xiàn)另一個(gè) mapper 對(duì)應(yīng) mapper did config 對(duì)應(yīng) config did
失敗了3:找不到persondao,bean初始化失敗,dao的Setter忘了寫(xiě)無(wú)法注入
第二個(gè)原因,如果類(lèi)名只有第一個(gè)字母大寫(xiě),這個(gè)時(shí)候要寫(xiě)小寫(xiě)
ref="personDao" ref="IPersonDao"
失敗了4:不用base這樣的方法拿到容器。。。直接在參數(shù)中加上HttpServletRequest獲取

8.加入springmvc攔截器,只讓有權(quán)限的人進(jìn)入網(wǎng)頁(yè)
8.1 在controller中添加方法
8.2 編寫(xiě)攔截器類(lèi)
8.3 在xml中注冊(cè)攔截器

*這里我發(fā)現(xiàn)他的spring,就是獲取容器那里好像是不太一樣的,是
@Autowired
@Qualifier("MyService")
private LoginService ls;

public void setLs(LoginService ls) {  
    this.ls = ls;  
}

這一堆東西,我找了找講義,然后把代碼給補(bǔ)上了,除了控制器這里,還有就是業(yè)務(wù)實(shí)現(xiàn)類(lèi):
@Service("MyService")
public class LoginServiceImp implements LoginService {
@Autowired
private PersonDao pdao;
這樣,當(dāng)然,還有xml配置文件里面,需要把之前手動(dòng)定義的MyService變成掃描包
<context:component-scan base-package="com.ssmlogin.service" />
這樣,就可以直接用ls了。
mybatis建議用配置文件開(kāi)發(fā),而springmvc我默認(rèn)是注釋?zhuān)瑂pring的注釋也可以看一看

9.添加spring事務(wù),當(dāng)然是為了圖ACDI特性
9.1 編寫(xiě)spring-tx配置文件,2件事,<!-- 注冊(cè)事務(wù)管理器 -->, <!-- 注冊(cè)事務(wù)注解驅(qū)動(dòng) -->
9.2 在業(yè)務(wù)類(lèi)名上加上標(biāo)記
9.3 測(cè)試事務(wù)性,在注冊(cè)類(lèi)中拋出異常
9.4 controller中寫(xiě)入注冊(cè)方法
失敗了:我按照講義直接加注釋?zhuān)孟癫恍校匆郧肮P記,有個(gè)
@Transactional(isolation=Isolation.DEFAULT, propagation=Propagation.REQUIRED, rollbackFor=Exception.class)
可能是缺省的沒(méi)有rollbackFor吧。。。

10.添加springmvc異常操作
10.1 在Springmvc中注冊(cè)異常捕獲
我發(fā)現(xiàn)我錯(cuò)了,是直接在controller寫(xiě)就好了,加上@ExceptionHandler(Exception.class)標(biāo)記
OK

11.springAOP我還沒(méi)涉及到,所以有這里再寫(xiě)個(gè)例子
這里寫(xiě)AOP的對(duì)一個(gè)類(lèi)的處理,大概就是獲取具體權(quán)限吧
比如我們權(quán)限有2個(gè)級(jí)別,登錄是一個(gè)級(jí)別,買(mǎi)買(mǎi)買(mǎi)是一個(gè)級(jí)別,
每次執(zhí)行買(mǎi)買(mǎi)買(mǎi)之后,就退出
11.1 導(dǎo)入aspectj的包
11.2 編寫(xiě)MyAspectJ.java,編寫(xiě)前置通知、后置通知
11.3 在spring-aspectj.xml中注冊(cè)
失敗了:一直不行,配置得好好的,AspectJ可以對(duì)service進(jìn)行攔截,但是對(duì)controller不行
這個(gè)時(shí)候我就在想,因?yàn)閟ervice畢竟是在容器里注冊(cè)了的,但是springmvc里面也有controller的注冊(cè)啊
查了半天,恩,aspectj的配置要寫(xiě)在springmvc的配置文件里面就生效了。。。
絕望嘻嘻嘻

至此,SSM整合,完成。2018年5月10日17:35:08

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

文章標(biāo)題:SSM整合,個(gè)人總結(jié)和step-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://chinadenli.net/article18/dphdgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作網(wǎng)站策劃品牌網(wǎng)站設(shè)計(jì)電子商務(wù)網(wǎng)站排名建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)