锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲a级片在线观看,色在线亚洲视频www,亚洲色偷拍区另类无码专区http://www.tkk7.com/yangpingyu/category/48541.htmlzh-cnSat, 14 May 2011 09:55:04 GMTSat, 14 May 2011 09:55:04 GMT60grails瀛︿範錛堜簩錛塯rails鍗曞厓嫻嬭瘯http://www.tkk7.com/yangpingyu/archive/2011/05/13/350200.htmlyangpingyuyangpingyuFri, 13 May 2011 13:40:00 GMThttp://www.tkk7.com/yangpingyu/archive/2011/05/13/350200.htmlhttp://www.tkk7.com/yangpingyu/comments/350200.htmlhttp://www.tkk7.com/yangpingyu/archive/2011/05/13/350200.html#Feedback0http://www.tkk7.com/yangpingyu/comments/commentRss/350200.htmlhttp://www.tkk7.com/yangpingyu/services/trackbacks/350200.html
杞歡鐨刡ug鏄棤娉曢伩鍏嶏紝浣嗘槸鎴戜滑鍙互灝介噺鍑忓皯bug錛屼笉鏂彁鍗囦唬鐮佽川閲忋傚垰鎴戜篃璇磋繃錛屼笂榪伴棶棰橀犳垚鐨勫師鍥犳槸娌℃湁鍋氭祴璇曘傛祴璇曞寘鎷緢澶氫簡錛屽崟鍏冩祴璇曘侀泦鎴愭祴璇曞拰鍔熻兘嫻嬭瘯絳夌瓑銆傛棦鐒舵祴璇曞姝ら噸瑕侊紝姣忓畬鎴愪竴涓被閮借兘榪涜嫻嬭瘯銆?br />
浠ュ墠涔熻浣犳瘮杈冪籂緇擄紝娌℃湁濂界殑宸ュ叿錛岀幇鍦╦ava紺懼尯闈炲父媧昏穬錛屾垜浠彲浠ラ夋嫨鐨勫お澶氬お澶氫簡錛歫unit4錛宩mock錛宮ockito錛宔asymock錛孴estNg絳夌瓑銆傚鏋滀綘鐢ㄨ繃grails錛岄偅涔堜綘鏇存竻妤氾紝姝ょ被蹇熷紑鍙戞鏋跺凡緇忓府鎴戜滑闆嗘垚濂戒簡銆備嬌鐢ㄨ搗鏉ラ潪甯哥畝鍗曘傛墍浠ヤ粖澶╂垜涓昏璁茶堪涓媑rails鐨勫崟鍏冩祴璇曘?br />
鍋囪闇姹傦細鎴戜滑緇欐瘡涓敤鎴峰垎閰嶅伐浣滐紝姣忎釜浜洪兘瑕佸畬鎴愪袱浠朵簨鎯咃紝絎竴浠朵簨鎯咃細鏍規嵁鑷繁鐨勭敤鎴峰悕榪斿洖嬈㈣繋淇℃伅錛涚浜屼歡浜嬫儏錛氭牴鎹嚜宸辯殑鍦板潃榪斿洖鍥藉鍦板尯銆?br />
璇︾粏璁捐

鐢ㄦ埛淇℃伅綾伙細
package com.test.domian

class User {

    
int id
    String name
    String address
    
    
static constraints = {
    }
}

宸ヤ綔鏈嶅姟鎺ュ彛錛?br />
package com.test.services

class WorkService {

    
/**
     * 鏍規嵁鐢ㄦ埛鍚嶈繑鍥炴榪庡瓧絎?br />      * 
@param userName
     * 
@return
     
*/
    def processWorkOne(String userName) {
    }
    
    
/**
     * 鏍規嵁鍦板潃榪斿洖鍦板尯
     * 
@param address
     * 
@return
     
*/
    def processWorkTwo(String address){
    }
    
}

鐢ㄦ埛宸ヤ綔鏈嶅姟錛?br />
package com.test.services

import com.test.domian.User

class UserService {

    def workService
    
    def doWork() {
        
        def userList 
= User.list()
        userList.each {
            it.name 
= workService.processWorkOne(it.name)
            it.address 
= workService.processWorkTwo(it.address)
            
        }
    }
}

鎴戜滑閲嶇偣鏉ョ湅涓嬫祴璇曠被錛?br />
package com.test.services

import grails.test.*

import com.test.domian.User

class UserServiceTests extends GrailsUnitTestCase {
    
protected void setUp() {
        
super.setUp()
    }

    
protected void tearDown() {
        
super.tearDown()
    }

    
void testDoWork() {
        
        
//鏋勯犳暟鎹紝綾諱技浜庢暟鎹簱瀛樺湪涓夋潯璁板綍
        def user1 = new User(id:1, name:"lucy", address:"hangzhou")
        def user2 
= new User(id:2, name:"lily", address:"wenzhou")
        def user3 
= new User(id:3, name:"lilei", address:"beijing")
        mockDomain User, [user1, user2, user3]
        
        
//mock WorkService鎺ュ彛鐨刾rocessWorkOne鏂規硶鍜宲rocessWorkTwo鏂規硶
        def workControl = mockFor(WorkService)
        def userCount 
= User.count()
        
while(userCount-- > 0){
            workControl.demand.processWorkOne(
1..1){String userName ->
                
return "hello world, " << userName
            }
            workControl.demand.processWorkTwo(
1..1){String address ->
                
return "location in " << address
            }
        }
        def workService 
= workControl.createMock()
        
        
//鎶婃瀯閫犲ソ鐨剋orkservice浼犵粰userservice
        UserService userService = new UserService()
        userService.workService 
= workService
        
        userService.doWork()
        
        def user4 
= User.findById(1)
        assertEquals 
"hello world, lucy", user4.name
        assertEquals 
"location in hangzhou", user4.address
    }
}

浠ヤ笅鐫閲嶆潵鍏蜂綋璇存槑錛?br /> 1銆?span style="color: #000000;">mockDomain鏂規硶灝辨槸鏋勯犳暟鎹紝鍖呮嫭domain綾葷殑鍔ㄦ佹柟娉曢兘鍙互浣跨敤錛屾瘮濡傦細save錛堬級錛宭ist錛堬級錛宖indby*錛堬級絳夈備唬鐮佷腑鐨刄ser.count(); User.list();灝辨槸鍥犱負璋冪敤浜唌ockDomain鏂規硶鎵嶅彲浠ユ甯鎬嬌鐢ㄣ傚鏋滄槸闆嗘垚嫻嬭瘯鐨勮瘽錛実rails浼氬府鎴戜滑鏋勯犲ソ錛屽彲浠ョ洿鎺ヤ嬌鐢ㄣ備絾榪欓噷鏄崟鍏冩祴璇曪紝鎵浠ラ渶瑕佽嚜宸眒ock銆?br />
2銆乵ockFor鏂規硶灝辨槸緇橶orkService鏋勯犱竴涓璞★紝鐒跺悗緇?/span>workControl瀵硅薄鐨刣emand浠g悊鍒涘緩涓や釜UserService涓敤鐨?/span>processWorkOne鍜?/span>processWorkTwo鏂規硶錛屼唬鐮佷腑鐢ㄥ埌浜?..1錛岃〃紺簃ock瀵硅薄鍙兘璋冪敤榪欎釜鏂規硶涓嬈★紝涓轟粈涔堣寰幆涓夋璁劇疆processWorkOne鍜?/span>processWorkTwo鏂規硶鍛紵鍥犱負鎴戜滑鍦║serService鏄涓変釜瀵硅薄鍒嗗埆榪涜璋冪敤澶勭悊榪欎袱浠朵簨鎯呫備篃璁鎬綘浼氭兂錛屽共鍢涗笉鐩存帴鎶?..3錛堟渶灝戣皟鐢ㄤ竴嬈★紝鏈澶氳皟鐢ㄤ笁嬈★級銆傛槸鐨勶紝鎴戞渶寮濮嬩篃鏄繖涔堟潵澶勭悊錛屽彲鏄崟鍏冩祴璇曞氨鏄悓涓嶈繃銆?br /> 濡傛灉鎶?/span>UserService綾諱腑鐨?/span>
workControl.demand.processWorkOne(1..1){String userName ->
      
return "hello world, " << userName
 }

鏀規垚
workControl.demand.processWorkOne(1..3){String userName ->
      
return "hello world, " << userName
 }

鐒跺悗鎶?span style="color: #000000;">UserServiceTests綾諱腑鐨勶細

userList.each {
            it.name 
= workService.processWorkOne(it.name)
            it.address 
= workService.processWorkTwo(it.address)
}
鏀規垚
userList.each {
            it.name 
= workService.processWorkOne(it.name)
           
it.name = workService.processWorkOne(it.name)
            it.name = workService.processWorkOne(it.name)
            it.address = workService.processWorkTwo(it.address)
}

鍗曞厓嫻嬭瘯鍙互閫氳繃錛屼絾鏄敼鎴愯繖鏍?br /> userList.each {
            it.name 
= workService.processWorkOne(it.name)
           
it.name = workService.processWorkOne(it.name)
            it.address = workService.processWorkTwo(it.address)
           
it.name = workService.processWorkOne(it.name)
}
鍗曞厓嫻嬭瘯閫氫笉榪囥?br /> 浠ヤ笂灝辨槸琛ㄦ槑1..3鐨勫惈涔夛細榪欎釜鏂規硶瑕佽繛緇璋冪敤鑷沖皯涓嬈★紝鑷沖涓夋銆?br /> 浣嗘槸鏈夌殑浜鴻鎴戝湪UserService涓氨瑕佽繖涔堝啓
userList.each {
            it.name 
= workService.processWorkOne(it.name)
           
it.name = workService.processWorkOne(it.name)
            it.address = workService.processWorkTwo(it.address)
           
it.name = workService.processWorkOne(it.name)
}
閭f垜瑕佹庝箞鏀瑰崟鍏冩祴璇曟墠鑳介氳繃錛?br /> 鎴戜滑鎶?/span>UserServiceTests鐨刣emand榪欐浠g爜
workControl.demand.processWorkOne(1..1){String userName ->
     
return "hello world, " << userName
}
workControl.demand.processWorkTwo(
1..1){String address ->
      
return "location in " << address
}

鏀規垚
workControl.demand.processWorkOne(1..2){String userName ->
      
return "hello world, " << userName
}
workControl.demand.processWorkTwo(
1..1){String address ->
       
return "location in " << address
 }

workControl.demand.processWorkOne(1..1){String address ->
       
return "location in " << address
 }
榪欐牱灝遍氳繃浜嗐?br /> 浠ヤ笂灝辨槸璇存槑鏋勯犲嚭鏉ョ殑鍑芥暟鍙兘鎸夌収鏋勯犵殑欏哄簭璋冪敤銆備粖澶╁氨鏄洜涓鴻繖涓姳浜嗘垜濂介暱鏃墮棿鍟婏紝甯屾湜鎴戠悊瑙f槸姝g‘鐨勩傚鏈変笉瀵癸紝璇風暀璦綰犳銆?/span>




]]>
grails瀛︿範錛堜竴錛塆rails宸ョ▼涓巑aven闆嗘垚http://www.tkk7.com/yangpingyu/archive/2011/05/10/349898.htmlyangpingyuyangpingyuTue, 10 May 2011 02:34:00 GMThttp://www.tkk7.com/yangpingyu/archive/2011/05/10/349898.htmlhttp://www.tkk7.com/yangpingyu/comments/349898.htmlhttp://www.tkk7.com/yangpingyu/archive/2011/05/10/349898.html#Feedback0http://www.tkk7.com/yangpingyu/comments/commentRss/349898.htmlhttp://www.tkk7.com/yangpingyu/services/trackbacks/349898.html 

Grails宸ョ▼涓巑aven闆嗘垚

Grails鍏跺疄涔熸湁鑷繁鐨勪竴浜涢」鐩鐞嗗懡浠わ紝濡傦細grails package錛実rails test-app錛実rails war絳夈備絾鏄叕鍙哥幇鍦ㄥ熀鏈笂閮芥槸鐢╩aven鏉ョ鐞嗛」鐩紝鎵浠ヤ粠綆$悊涓婅繘琛岀粺涓鐨勭洰鐨勶紝鎴戜滑涔熻grails宸ョ▼鐢眒aven鏉ョ鐞嗐?/span>

Grails涓巑aven闆嗘垚鏄潬maven鎻掍歡鏈哄埗銆?/span>

鎺ヤ笅鏉ユ弿榪頒笅闆嗘垚鐨勬楠わ細

1銆?/span>鍦?home/.m2/settings.xml涓厤緗畃lugin group

<settings>

 

 <pluginGroups>

    <pluginGroup>org.grails</pluginGroup>

 </pluginGroups>

</settings>

娌℃湁閰嶇疆涔嬪墠錛岃榪愯grails錛歨elp鍛戒護瑕佽繖鏍峰啓錛歮vn org.grails:help錛屾湁浜嗛厤緗箣鍚庢垜浠氨鍙互榪欎箞鍐欙細mvn grails:help銆?/span>

2銆佹垜浠垱寤轟竴涓猰aven綆$悊鐨刧rails宸ョ▼

Mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:generate
    -DarchetypeGroupId=org.grails 
    -DarchetypeArtifactId=grails-maven-archetype 
    -DarchetypeVersion=1.2.0 
-DgroupId=example -DartifactId=my-app
grails-maven-archetype榪欓噷鐢ㄧ殑鏄?.2.0鐗堟湰錛屽ソ鍍弇aven3闆嗘垚鐨勭増鏈瘮榪欎釜瑕佹柊銆?/span>
 
3銆佽繘鍏y-app褰撳墠鐩綍錛岃繍琛宮vn initialize
鍦ㄨ繍琛岃繃紼嬩腑鍙兘浼氬嚭鐜板涓嬮棶棰橈細
Resolving plugin JAR dependencies 
:: problems summary ::
:::: WARNINGS
               module not found: org.hibernate#hibernate-core;3.3.1.GA
閭d箞浣犲湪application.properties鏂囦歡涓坊鍔爌lugins.hibernate=1.3.2
plugins.tomcat=1.3.2涓や釜鎻掍歡銆傛渶鍚庤繍琛宮vn compile閲嶆柊緙栬瘧宸ョ▼銆?/span>
 
4銆佹垜浠槸鐢╯pringsource tool suite寮鍙戯紝瀵煎叆宸ョ▼銆傞」鐩腑闇瑕佸excel鎿嶄綔錛屾垜浠噰鐢╦xl.jar寮婧愬寘銆傚湪pom鏂囦歡涓厤緗涓嬪唴瀹癸細

<dependency>

      <groupId>jxl</groupId>

      <artifactId>jxl</artifactId>

      <version>2.4.2</version>

</dependency>
閲嶆柊緙栬瘧涓嬪伐紼嬶紝浣嗘槸寮曠敤jxl鍖呬腑綾葷殑鏂囦歡榪樻槸鎶ラ敊錛岃鎵句笉鍒扮被銆傝繖鎬庝箞鍥炰簨鍛紵鎴戜篃寰堢撼闂鳳紝涓鑸琺aven宸ョ▼閮芥槸榪欐牱灝卞彲浠ャ?/span>
 
鍚庢潵鍦ㄥ畼鏂規枃妗d笂鐪嬪埌涓鍙ヨ瘽錛歱om=true銆傚彧瑕佹妸榪欏彞璇濆姞鍒癱onf/BuildConfig.groovy鏂囦歡涓殑grails.project.dependency.resolution鏂規硶涓傚鍥撅細
 
閲嶆柊緙栬瘧錛屼絾鏄繕鏄姤閿欍侷de榪樻槸鏃犳硶寮曠敤jxl鍖呬腑鐨勭被銆傚悗鏉ュ彂鐜板湪grails tools涓壘鍒頒簡涓涓懡浠ゃ?/span>
 
鎵ц榪囧悗錛屽凡緇忓姞鍏ュ埌浜唃rails dependencies涓?/span>
 
涓轟粈涔堜細榪欐牱鍛紝鏄洜涓烘湁涓ゅ鏈哄埗閫犳垚鐨勩?/span>
絎竴濂楁満鍒訛細maven鑷韓綆$悊欏圭洰鐨勬満鍒躲?/span>
絎簩濂楁満鍒訛細grails涔熸湁鑷繁鐨勪竴濂楃鐞嗘満鍒躲?/span>
 
鍦ㄧ粷澶у鏁版儏鍐典笅maven閫氳繃grails鐨勯泦鎴愭彃浠跺彲浠ュ宸ョ▼榪涜鎵撳寘錛岄儴緗詫紝榪愯嫻嬭瘯絳夌鐞嗐?/span>
Grails鍙互閫氳繃鑷繁鐨刧rails war絳夊懡浠よ繘琛屾墦鍖咃紝閮ㄧ講錛岃繍琛屾祴璇曠瓑綆$悊銆?/span>
Grails涔熷彲浠ラ氳繃閰嶇疆pom=true璁ゞrails閭e綆$悊鏈哄埗鐢╬om涓殑閰嶇疆錛屼笉浣跨敤鑷繁鐨勭鐞嗘満鍒躲傛鏃朵綘灝變笉鐢ㄥ湪conf/BuildConfig.groovy涓鐞嗕緷璧栧拰璧勬簮搴撶瓑閰嶇疆銆?/span>
 


]]>
主站蜘蛛池模板: 日本高清免费中文字幕不卡| 免费看又黄又无码的网站| 最近最好的中文字幕2019免费 | 久久久精品2019免费观看| 亚洲日产无码中文字幕| 国产在线观看免费av站| 国产亚洲精久久久久久无码77777| 一级毛片免费全部播放| 国产成人综合亚洲亚洲国产第一页 | 免费a级毛片在线观看| 美女被免费网站在线视频免费 | 亚洲精品无码高潮喷水在线| 久久99毛片免费观看不卡| 久久夜色精品国产噜噜亚洲AV| 一级做a爰全过程免费视频| 97久久国产亚洲精品超碰热| 国产乱弄免费视频| 国产线视频精品免费观看视频| 亚洲一区二区三区电影| 成年女人免费视频播放77777 | 亚洲avav天堂av在线网毛片| 伊人久久亚洲综合影院| 成人电影在线免费观看| 亚洲综合激情九月婷婷| 成全影视免费观看大全二| 免费中文字幕视频| 亚洲嫩草影院久久精品| 久久久久国色AV免费观看性色| 麻豆91免费视频| 久久亚洲AV成人出白浆无码国产| 国产又黄又爽又猛免费app| 黄色a级免费网站| 亚洲系列中文字幕| 免费国产精品视频| 久久免费国产视频| 亚洲av成人无码网站…| 亚洲成AV人片一区二区| 国产精品久久香蕉免费播放| 两性色午夜免费视频| 成人区精品一区二区不卡亚洲| 亚洲精品一级无码中文字幕|