锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲人成网77777色在线播放,亚洲VA中文字幕无码一二三区,yy6080亚洲一级理论http://www.tkk7.com/bjwulin/姝e湪琛岃蛋鐨勪漢...zh-cnFri, 09 May 2025 17:15:04 GMTFri, 09 May 2025 17:15:04 GMT60ubuntu server涓嬪畨瑁卆pache,mysql,tomcat銆?/title><link>http://www.tkk7.com/bjwulin/archive/2014/02/19/410032.html</link><dc:creator>涓嶅仛嫻簛鐨勪漢</dc:creator><author>涓嶅仛嫻簛鐨勪漢</author><pubDate>Wed, 19 Feb 2014 05:04:00 GMT</pubDate><guid>http://www.tkk7.com/bjwulin/archive/2014/02/19/410032.html</guid><wfw:comment>http://www.tkk7.com/bjwulin/comments/410032.html</wfw:comment><comments>http://www.tkk7.com/bjwulin/archive/2014/02/19/410032.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bjwulin/comments/commentRss/410032.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bjwulin/services/trackbacks/410032.html</trackback:ping><description><![CDATA[涓鐩存兂鐢╪ginx錛屽洜涓轟紶璇村緢蹇紝鍙儨瀵筬4f鍙湪鍟嗙敤涓敮鎸侊紝鎵浠ワ紝鏆傛椂鏀懼純錛岃繕鏄戶緇敤鐢╝pache銆?br />1銆佸畨瑁卆pache寰堢畝鍗曪紝鍏堜緥琛屽叕浜嬶細(xì)sudo apt-cache search apache|grep apache錛屾煡鎵懼埌閲岄潰鐨刟pache2錛屾墽琛宻udo apt-get install apache2錛屽緢蹇氨瀹夎瀹岋紝瀹夎瀹屽悗鎵цhttp://127.0.0.1錛屽鏋滃嚭鐜癷t works,閭e氨琛ㄧず瀹夎姝g‘銆?br />澶囨敞錛欰pache鐨勯粯璁ゆ枃妗f牴鐩綍鏄湪Ubuntu涓婄殑/var/www鐩綍錛岄厤緗枃浠舵槸 /etc/apache2/apache2.conf銆傞厤緗瓨鍌ㄧ殑瀛愮洰褰曞湪/etc/apache2鐩綍錛宎pache閲嶅惎鍛戒護(hù)錛歴udo /etc/init.d/apache2 restart<br /><br />2銆佸畨瑁卪ysql涔熷緢綆鍗曪紝鍏堜緥琛屽叕浜嬶細(xì)sudo apt-cache search mysql|grep server錛屽彲浠ョ湅鍒伴噷闈㈢殑mysql-server鍚庨潰璺熺潃"metapackage depending on the latest version"錛屽洜姝ょ洿鎺ュ畨瑁卪ysql-server鍙互鑾峰緱鏈鏂扮増鏈傛墽琛岋細(xì)sudo apt-get install mysql-server mysql-client錛屽畨瑁呭畬鍚庢墽琛宮ysql -uroot -p錛岃緭鍏ラ粯璁ゅ瘑鐮乺oot錛屽嵆鍙櫥褰昺ysql client鐨勬搷浣滅晫闈€?br />mysql榛樿閰嶇疆鏂囦歡璺緞錛?etc/mysql/my.cnf<br /><br />3銆佸畨瑁卼omcat7錛屼緥琛屽叕浜嬶細(xì)sudo apt-cache search tomcat7錛岀劧鍚庢墽琛宻udo apt-get install tomcat7 tomcat7-admin銆傚畨瑁呭畬姣曞悗錛屽湪嫻忚鍣ㄨ緭鍏ttp://127.0.0.1:8080錛屽嚭鐜癷t works...琛ㄧず浣犳垚鍔熶簡(jiǎn)銆?br />澶囨敞錛歵omcat7涓鑸斁鍦?var/lib/tomcat7/webapps銆?br /><br />4銆佹暣鍚坅pache2鍜宼omcat7<br />a銆佸畨瑁卪od-jk,sudo apt-get install libapache2-mod-jk <br />b銆佺紪杈憈omcat閰嶇疆鏂囦歡錛歴udo nano /etc/tomcat7/server.xml 錛岃”<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />“鐨勬敞閲婂幓鎺夈?br />c銆佸湪/etc/apache2/涓嬫柊寤簑orkers.properties錛宻udo nano /etc/apache2/workers.properties,杈撳叆浠ヤ笅鍐呭錛?br /><div>worker.list=worker1 <br /><br />worker.worker1.type=ajp13 <br />worker.worker1.host=localhost<br />worker.worker1.port=8009<br />d銆佺紪杈慾k.conf鏂囦歡錛屾墽琛宻udo nano /etc/apache2/mods-enabled/jk.conf銆傚皢JkWorkersFile淇敼涓猴細(xì)/etc/apache2/workers.properties<br />e銆佹渶鍚庨厤緗漿鍙戣礬寰勶紝鍗崇鍚堣鍒欑殑璺緞鐢盿pache杞彂緇檛omcat7銆傜紪杈?00-default.conf鏂囦歡錛屾墽琛岋細(xì)sudo nano /etc/apache2/sites-enabled/000-default.conf錛屽湪璇ユ枃浠朵腑澧炲姞錛?br /><div><VirtualHost *:80><br />...<br />JkMount /tomcat-test* worker1<br /></VirtualHost *:80><br />鑷蟲閰嶇疆閮藉畬浜?jiǎn)銆傛垜浠敤浜?tomcat-test*錛岃〃紺鴻闂繖涓獁ebapp鏃惰漿鍙戠粰worker1榪涜澶勭悊錛屽洜姝ゆ垜浠繕闇瑕佸仛涓涓猼omcat-test搴旂敤鏉ヨ繘琛屾祴璇曘?br />f銆佹垜浠湪/var/lib/tomcat7/webapps寤虹珛涓涓祴璇昦pp錛屼緷嬈℃墽琛屽懡浠わ細(xì)cd /var/lib/tomcat7/webapps錛宻udo mkdir tomcat-test 錛?cd tomcat-test 錛?br /><div>sudo mkdir test 錛?cd test 錛?sudo nano index.jsp錛屽茍鍦╥ndex.jsp鏂囦歡涓緭鍏ヤ互涓嬪唴瀹癸細(xì)</div><div><HTML><br /> <HEAD><br />  <TITLE>Hello World</TITLE><br /> </HEAD><br /> <BODY><br />  <H1>Hello World</H1><br />  Today is: <%= new java.util.Date().toString() %><br /> </BODY><br /></HTML></div>鍦ㄦ祻瑙堝櫒涓緭鍏ワ細(xì)http://192.168.1.10:8080/tomcat-test/test/index.jsp錛岄獙璇佹槸鍚︽甯搞?br /><br />g銆侀噸鍚痶omcat7鍜宎pache2錛屾墽琛屽懡浠わ細(xì)sudo /etc/init.d/tomcat7 restart鍜宻udo /etc/init.d/apache2 restart錛岀劧鍚庡湪嫻忚鍣ㄤ腑杈撳叆錛?div>http://192.168.1.10/tomcat-test/test/index.jsp錛岄獙璇佹槸鍚︽甯搞?/div><br /></div></div><br /><br /><img src ="http://www.tkk7.com/bjwulin/aggbug/410032.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bjwulin/" target="_blank">涓嶅仛嫻簛鐨勪漢</a> 2014-02-19 13:04 <a href="http://www.tkk7.com/bjwulin/archive/2014/02/19/410032.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>redis 鐢熶駭鐜涓殑鑷姩鍚姩http://www.tkk7.com/bjwulin/archive/2014/02/19/410019.html涓嶅仛嫻簛鐨勪漢涓嶅仛嫻簛鐨勪漢Wed, 19 Feb 2014 02:39:00 GMThttp://www.tkk7.com/bjwulin/archive/2014/02/19/410019.htmlhttp://www.tkk7.com/bjwulin/comments/410019.htmlhttp://www.tkk7.com/bjwulin/archive/2014/02/19/410019.html#Feedback0http://www.tkk7.com/bjwulin/comments/commentRss/410019.htmlhttp://www.tkk7.com/bjwulin/services/trackbacks/410019.html2銆佸緩绔嬮渶瑕佺殑鏂囦歡澶癸紝鎴戜滑涓鑸渶瑕?etc/redis錛堢敤鏉ュ瓨鏀緍edis鐨勯厤緗枃浠訛級(jí)浠ュ強(qiáng)/var/redis/6000錛堝瓨鏀緍edis鐨勬寔涔呮枃浠訛級(jí)銆?br />3銆佸皢瑙e帇鐨剅edis鐩綍涓嬬殑redis.conf鎷瘋礉鍒?etc/redis錛屽茍鍛藉悕涓簉edis_6000.conf錛屽茍瀵逛互涓嬪弬鏁拌繘琛屼慨鏀?
    daemonize 淇敼涓簓es錛岀‘淇漴edis浠ュ畧鎶よ繘紼嬫ā寮忚繍琛屻?br />    pidfile 淇敼涓?var/run/redis_6000.pid
    port淇敼涓?000
    dir淇敼涓?var/redis/6000
    紜畾涓や釜鐩綍閮藉瓨鍦ㄣ?br />4銆佹墽琛岋細(xì)/etc/init.d/redis_6000 start鍚姩redis錛屽啀鎵цsudo update-rc.d redis_6000 defaults銆?br />
瀹屾瘯銆?img src ="http://www.tkk7.com/bjwulin/aggbug/410019.html" width = "1" height = "1" />

涓嶅仛嫻簛鐨勪漢 2014-02-19 10:39 鍙戣〃璇勮
]]>
thymeleaf涓巗pring鏁村悎http://www.tkk7.com/bjwulin/archive/2014/02/11/409734.html涓嶅仛嫻簛鐨勪漢涓嶅仛嫻簛鐨勪漢Tue, 11 Feb 2014 08:16:00 GMThttp://www.tkk7.com/bjwulin/archive/2014/02/11/409734.htmlhttp://www.tkk7.com/bjwulin/comments/409734.htmlhttp://www.tkk7.com/bjwulin/archive/2014/02/11/409734.html#Feedback0http://www.tkk7.com/bjwulin/comments/commentRss/409734.htmlhttp://www.tkk7.com/bjwulin/services/trackbacks/409734.html2銆佽闂笂涓嬫枃鐨凚ean鐢?{@myBean.doSomething()}
3銆乼h:field,th:errors,th:errorclass鐢ㄤ簬form processing銆?br />4銆佽閲囩敤SpringTemplateEngine銆?br />5銆佸熀鏈厤緗細(xì)
<bean id="templateResolver"
       class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
  <property name="prefix" value="/WEB-INF/templates/" />
  <property name="suffix" value=".html" />
  <property name="templateMode" value="HTML5" />
</bean>
    
<bean id="templateEngine"
      class="org.thymeleaf.spring3.SpringTemplateEngine">
  <property name="templateResolver" ref="templateResolver" />
</bean>

<bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
  <property name="templateEngine" ref="templateEngine" />
  <property name="order" value="1" />
  <property name="viewNames" value="*.html,*.xhtml" />
</bean>

6銆佽@ModelAttribute娉ㄩ噴鐨勬柟娉曚細(xì)鍦ㄦcontroller姣忎釜鏂規(guī)硶鎵ц鍓嶈鎵ц錛屽鏋淍ModelAttribute娉ㄩ噴鐨勬柟娉曟湁榪斿洖鍊鹼紝鍒欒〃紺哄湪model涓瓨鏀鵑殣鍚悕縐扮殑灞炴у璞★紝姣斿榪斿洖Account錛屽垯鐩稿綋浜巑odel.addAttribute("account",account)錛屽鏋淍ModelAttribute(value="aname")娉ㄩ噴鏂規(guī)硶錛屽垯琛ㄧず鍦╩odel涓鍔燼name鐨勫睘鎬у箋侤ModelAttribute娉ㄩ噴涓涓柟娉曠殑鍙傛暟鍒欒〃紺轟粠model涓垨鑰呬粠Form琛ㄥ崟鎴栬卽rl涓幏鍙栥?br />7銆?@RequestMapping("/hello")public void novoid() { }錛岃繑鍥炶鍥句負(fù)鍓嶇紑+/hello+鍚庣紑錛屽綋鏂規(guī)硶榪斿洖Map,ModelMap絳夋椂閮芥槸鐩稿綋浜嶳equest.setAttribute()銆?br />8銆?lt;td th:text="${{sb.datePlanted}}">13/01/2011</td>鍙屾嫭鍙瘋〃紺鴻嚜鍔ㄤ嬌鐢ㄨ漿鎹紝甯哥敤浜庢牸寮忚漿鎹€?br />9銆?lt;td th:text="${#strings.arrayJoin(#messages.arrayMsg(#strings.arrayPrepend(sb.features,'seedstarter.feature.')),', ')}">Electric Heating, Turf</td>錛岄鍏堝皢鏁扮粍feathers閮藉姞涓婂墠緙錛岀劧鍚庡埄鐢╩essages緲昏瘧鍥介檯鍖栵紝鏈緇堢粍鍚堟垚涓涓瓧絎︿覆銆?br />10銆佺敤th:object鎸囧畾command object錛屾瘮濡傦細(xì)<form action="#" th:action="@{/save}" th:object="${person}" method="post">錛屼袱鐐歸檺鍒訛紝絎竴object鍙兘鏄痬odel 鐨勭洿鎺ttribute錛屼笉鑳戒嬌${person.baseInfo},絎簩錛宼h:object鐨勫瓙綰ф爣絳懼唴涓嶈兘鍐嶄嬌鐢╰h:object銆俰nputField浣跨敤錛?lt;input type="text" th:field="*{datePlanted}" />銆?br />12銆乧heckbox鏍囩錛?div><div>
  <label th:for="${#ids.next('covered')}" th:text="#{seedstarter.covered}">Covered</label>
  <input type="checkbox" th:field="*{covered}" />
</div>
checkbox array:
<ul>
  <li th:each="feat : ${allFeatures}">
    <input type="checkbox" th:field="*{features}" th:value="${feat}" />
    <label th:for="${#ids.prev('features')}" th:text="#{${'seedstarter.feature.' + feat}}">Heating</label>
  </li>
</ul>

13銆乺adios:
<ul>
  <li th:each="ty : ${allTypes}">
    <input type="radio" th:field="*{type}" th:value="${ty}" />
    <label th:for="${#ids.prev('type')}" th:text="#{${'seedstarter.type.' + ty}}">Wireframe</label>
  </li>
</ul>

14銆乨ropdownlist or select銆?br />
<select th:field="*{type}">
  <option th:each="type : ${allTypes}"
          th:value="${type}"
          th:text="#{${'seedstarter.type.' + type}}">Wireframe</option>
</select>

15銆侀澶勭悊錛?lt;select th:field="*{rows[__${rowStat.index}__].variety}">鑰屼笉浣跨敤<select th:field="*{rows[rowStat.index].variety}">錛屽洜涓簊pring el涓嶄細(xì)璁$畻鏁扮粍绱㈠紩涓殑鍙橀噺鎴栬呰〃杈懼紡銆?br />16銆侀敊璇樉紺猴細(xì)<input type="text" th:field="*{datePlanted}" th:class="${#fields.hasErrors('datePlanted')}? fieldError" />
<ul>
  <li th:each="err : ${#fields.errors('datePlanted')}" th:text="${err}" />
</ul>

<input type="text" th:field="*{datePlanted}" />
<p th:if="${#fields.hasErrors('datePlanted')}" th:errors="*{datePlanted}">Incorrect date</p>

<input type="text" th:field="*{datePlanted}" class="small" th:errorclass="fieldError" />

<ul th:if="${#fields.hasErrors('*')}">
  <li th:each="err : ${#fields.errors('*')}" th:text="${err}">Input is incorrect</li>
</ul>
鍏ㄥ眬閿欒錛?br />
<ul th:if="${#fields.hasErrors('global')}">
  <li th:each="err : ${#fields.errors('global')}" th:text="${err}">Input is incorrect</li>
</ul>
鍦╢orm澶栨樉紺洪敊璇?
<div th:errors="${myForm}">...</div>
<div th:errors="${myForm.date}">...</div>
<div th:errors="${myForm.*}">...</div>

<div th:if="${#fields.hasErrors('${myForm}')}">...</div>
<div th:if="${#fields.hasErrors('${myForm.date}')}">...</div>
<div th:if="${#fields.hasErrors('${myForm.*}')}">...</div>

<form th:object="${myForm}">
    ...
</form>
17銆佸埄鐢ㄥ姛鑳界被杞崲錛?conversions.convert(Object,Class)錛?conversions.convert(Object,String)
18銆佹覆鏌撴ā鏉跨殑鐗囨錛屽父鐢ㄤ簬ajax錛岃繑鍥炰竴閮ㄥ垎鏂囨湰鍋氭浛鎹嬌鐢ㄣ?br />鍦╒iewBean涓寚瀹氱墖孌碉細(xì)
<bean name="content-part" class="org.thymeleaf.spring3.view.ThymeleafView">
  <property name="templateName" value="index" />
  <property name="fragmentSpec">
    <bean class="org.thymeleaf.standard.fragment.StandardDOMSelectorFragmentSpec"
          c:selectorExpression="content" />
  </property>
</bean>

@RequestMapping("/showContentPart")
public String showContentPart() {
    ...
    return "content-part";//榪斿洖涓婇潰瀹氫箟鐨刡ean鍚嶇О銆?br />}
c:selectorExpression="content"錛氶渶瑕佸湪content鑺傜偣鍔犱笂th:fragment銆?/div>c:selectorExpression="#content" 錛氬畬鍏ㄥ熀浜巋tml dom selector錛屾棤闇th:fragment銆?br />鍦╟ontroller涓寚瀹氱墖孌碉細(xì)
@RequestMapping("/showContentPart")
public String showContentPart() {
    ...
    return "index :: content";
}
"index :: content"鍜?index ::#content"鍖哄埆涓鏍楓?br />榪樺彲浠ヨ繑鍥炲甫鍙傛暟鐨勭墖孌碉細(xì)
@RequestMapping("/showContentPart")
public String showContentPart() {
    ...
    return "index :: #content ('myvalue')";
}










涓嶅仛嫻簛鐨勪漢 2014-02-11 16:16 鍙戣〃璇勮
]]>
欏甸潰甯冨眬澶囧繕http://www.tkk7.com/bjwulin/archive/2014/02/10/409656.html涓嶅仛嫻簛鐨勪漢涓嶅仛嫻簛鐨勪漢Mon, 10 Feb 2014 06:00:00 GMThttp://www.tkk7.com/bjwulin/archive/2014/02/10/409656.htmlhttp://www.tkk7.com/bjwulin/comments/409656.htmlhttp://www.tkk7.com/bjwulin/archive/2014/02/10/409656.html#Feedback1http://www.tkk7.com/bjwulin/comments/commentRss/409656.htmlhttp://www.tkk7.com/bjwulin/services/trackbacks/409656.html
thymeleaf鐨別clipse鎻掍歡錛歨ttps://github.com/thymeleaf/thymeleaf-extras-eclipse-plugin

欏甸潰甯冨眬鍒嗕負(fù)鍖呭惈甯冨眬鍜屽眰嬈″竷灞錛屽寘鍚竷灞錛屼竴鑸氳繃th:include浠ュ強(qiáng)th:replace鏉ュ疄鐜幫紝include鍜宺eplace涓嶄竴鏍風(fēng)殑鏄竴涓寘鍚湪host tag閲岄潰錛屼竴涓槸鎸囨浛鎹ost tag錛宼hymeleaf鐨勫寘鍚竷灞鍜宩sp鐨刬nclude涓嶅悓鐨勬柟闈㈠湪浜庯紝thymeleaf鍙互鍖呭惈鏌愪釜鏂囦歡鐨勬煇涓涓儴鍒嗭紝鑰宩sp鐨勫繀欏誨寘鍚暣涓枃浠躲傛瘮濡傦細(xì)<div th:replace="fragments/header :: header">...</div>錛宖ragments/header鏄寚琚寘鍚殑妯℃澘鏂囦歡錛?:header鐨刪eader鎸囪鍖呭惈妯℃澘鏂囦歡涓殑琚寘鍚儴鍒嗐傚彲浠ョ敤this:header鎴栬?:header閮芥槸鎸囧寘鍚湰欏甸潰鐨勯儴鍒嗐傝鍖呭惈鐨勬枃浠剁殑琚寘鍚儴鍒嗛渶瑕佸姞涓婂睘鎬э細(xì)th:fragment="header"

thymeleaf鍙互鍩轟簬dom selector鏉ュ鐞嗗寘鍚紝鑰屼笉鐢ㄦ樉紺哄湴璋冪敤th:fragment錛屾瘮濡傦細(xì)<div th:include="http://www.thymeleaf.org :: p.notice" >...</div>錛岄偅涔堝皢浼?xì)璋冪敤tag p涓?class="notice“鐨勭墖孌碉紝榪欎釜鏈澶х殑濂藉灝辨槸鍖呭惈鍒殑緗戠珯鐨勭綉欏甸儴鍒嗐備互鍓嶇殑鍋氭硶鏈夌敤ajax鐨勶紝鏈夌敤iframe鐨勶紝榪樻湁鐢╦avabean鑾峰彇鍚庝紶緇欏墠绔殑銆倀hymeleaf榪欑澶勭悊鏂瑰紡鐩稿鍚堢悊銆傞噰鐢╠om榪欑鏂瑰紡錛岄渶瑕乼emplateEngine.addTemplateResolver(urlTemplateResolver());

鍖呭惈璇硶鐨勬ā鏉挎枃浠跺拰鐗囨閮藉彲浠ラ氳繃琛ㄨ揪寮忔潵鎸囧畾錛屾瘮濡?lt;div th:replace="fragments/footer :: ${#authentication.principal.isAdmin()} ? 'footer-admin' : 'footer'">銆?br />
thymeleaf鍖呭惈妯℃澘涔熸敮鎸佸弬鏁板寘鍚紝姣斿錛?br />
<div th:fragment="alert (type, message)"
         class="alert alert-dismissable" th:classappend="'alert-' + ${type}">
      <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
      <span th:text="${message}">Test</span>
    </div>
琛ㄧずalert榪欎釜鐗囨鏈変袱涓弬鏁幫細(xì)type鍜宮essage錛岄偅涔堣皟鐢ㄧ殑鏃跺欙細(xì)
<div th:replace="fragments/alert :: alert (type='danger', message=${errorMessage})">...</div>
鍙傛暟鍖栫墖孌墊彁楂樼墖孌電殑鍙噸鐢ㄦ?

棰樺璇濓紝鎴戝綋騫寸壒鍠滄infoglue鐨勮璁$悊蹇碉紝浜嬭繃濂藉騫達(dá)紝渚濈█璁板緱slot鍜宲aram binding涓や釜璁╂垜涓鐩村緢鍠滄鐨勭悊蹇碉紝鐜板湪鐨則hymeleaf閮藉彲浠ュ仛鍒般傜戶緇?..

鑳藉浠巗pring controller榪斿洖鐗囨錛屾瘮濡傦細(xì)
if (AjaxUtils.isAjaxRequest(requestedWith)) {
        return SIGNUP_VIEW_NAME.concat(" :: signupForm");
    }
    return SIGNUP_VIEW_NAME;
褰撶敤ajax璇鋒眰鐨勬椂鍊欙紝鍚庣榪斿洖鐨勮鍥句負(fù)鐗囨鐨勫唴瀹廣?br />
鍖呭惈甯冨眬錛岀敱浜庢槸鍦ㄦ瘡涓〉闈㈠寘鍚叕鍏變唬鐮侊紝鍥犳natural鐗規(guī)ф病鏈夊獎(jiǎng)鍝嶏紝涓嶈繃濡傛灉涓鏃﹂渶瑕佸垏鎹㈠寘鍚彟澶栫殑鍏叡閮ㄥ垎鎴栬呮敼鍙樼粺涓欏甸潰甯冨眬妯″紡錛岄偅涔堝寘鍚竷灞灝辨樉寰楀姏涓嶄粠蹇?jī)銆傚眰嬈″竷灞錛岀洰鍓嶆祦琛岀殑鏈塗iles鍜宻itemesh錛屼竴鑸槸灝嗗竷灞絳夊叕鐢ㄩ儴鍒嗘斁鍦╬arent閲岄潰錛屾樉紺烘椂灝嗘瘡涓瓙欏甸潰鐨勫叿浣撳唴瀹硅瀺鍚堝埌parent閲岄潰鏉ュ澶栧睍鐜幫紝浼樼偣鏄洿濂界殑緇存姢鎬э紝緙虹偣鏄痭atural涓嶅銆?br />
鏈淇℃伅鍙戝竷鍐呮牳閲囩敤灞傛甯冨眬妯″紡銆備袱灞傛ā鏉垮睍鐜幫紝鐖剁駭妯℃澘璐熻矗甯冨眬灞曠幇錛屽瓙綰фā鏉胯礋璐e唴瀹瑰睍鐜般?br />閽堝spring mvc鍜宼hymeleaf鍋氫竴涓嬫墿灞曪細(xì)
1銆佸畾涔夋敞閲婏細(xì)layout娉ㄩ噴鍙互鐢ㄥ湪綾誨拰鏂規(guī)硶涓娿?br />
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Layout {
    String value() default "";
}

2銆佸畾涔塱nterceptor錛?br />
public class ThymeleafLayoutInterceptor extends HandlerInterceptorAdapter {
 
    private static final String DEFAULT_LAYOUT = "layouts/default";
    private static final String DEFAULT_VIEW_ATTRIBUTE_NAME = "view";
 
    private String defaultLayout = DEFAULT_LAYOUT;
    private String viewAttributeName = DEFAULT_VIEW_ATTRIBUTE_NAME;
 
    public void setDefaultLayout(String defaultLayout) {
        Assert.hasLength(defaultLayout);
        this.defaultLayout = defaultLayout;
    }
 
    public void setViewAttributeName(String viewAttributeName) {
        Assert.hasLength(defaultLayout);
        this.viewAttributeName = viewAttributeName;
    }
 
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        if (!modelAndView.hasView()) {
            return;
        }
        String originalViewName = modelAndView.getViewName();
        if (isRedirectOrForward(originalViewName)) {
            return;
        }
        String layoutName = getLayoutName(handler);
        modelAndView.setViewName(layoutName);
        modelAndView.addObject(this.viewAttributeName, originalViewName);
    }
 
    private boolean isRedirectOrForward(String viewName) {
        return viewName.startsWith("redirect:") || viewName.startsWith("forward:");
    }
 
    private String getLayoutName(Object handler) {
        HandlerMethod handlerMethod = (HandlerMethod) handler;
        Layout layout = getMethodOrTypeAnnotation(handlerMethod);
        if (layout == null) {
            return this.defaultLayout;
        } else {
            return layout.value();
        }
    }
 
    private Layout getMethodOrTypeAnnotation(HandlerMethod handlerMethod) {
        Layout layout = handlerMethod.getMethodAnnotation(Layout.class);
        if (layout == null) {
            return handlerMethod.getBeanType().getAnnotation(Layout.class);
        }
        return layout;
    }
}

3錛氶厤緗甶nterceptor錛?br />
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new ThymeleafLayoutInterceptor());
    }
}

4錛氭祴璇曠被錛?br />
@Controller
class SigninController {
 
    @Layout(value = "layouts/blank")
    @RequestMapping(value = "signin")
    String signin() {
        return "signin/signin";
    }
}
5錛氭祴璇曞竷灞妯℃澘欏甸潰錛?br />
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
 
<head>...</head>
<body>
<div th:raplace="fragments/header :: header">
    Header
</div>
<div th:replace="${view} :: content">
    Content
</div>
<div th:replace="fragments/footer :: footer">
    Footer
</div>
</body>
</html>


6錛氭祴璇曞唴瀹規(guī)ā鏉塊〉闈細(xì)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
 
<head>...</head>
<body>
<div class="container" th:fragment="content">
    <!-- /* Handle the flash message */-->
    <th:block th:if="${message != null}">
        <div th:replace="fragments/alert :: alert (type=${#strings.toLowerCase(message.type)}, message=${message.message})"> </div>
    </th:block>
    <p>
        Hello <span th:text="${#authentication.name}">User</span>!
        Welcome to the Spring MVC Quickstart application!
    </p>
</div>
</body>
</html>


涓嶅仛嫻簛鐨勪漢 2014-02-10 14:00 鍙戣〃璇勮
]]>
redis瀛︿範(fàn)澶囧繕http://www.tkk7.com/bjwulin/archive/2014/02/08/409621.html涓嶅仛嫻簛鐨勪漢涓嶅仛嫻簛鐨勪漢Sat, 08 Feb 2014 10:51:00 GMThttp://www.tkk7.com/bjwulin/archive/2014/02/08/409621.htmlhttp://www.tkk7.com/bjwulin/comments/409621.htmlhttp://www.tkk7.com/bjwulin/archive/2014/02/08/409621.html#Feedback0http://www.tkk7.com/bjwulin/comments/commentRss/409621.htmlhttp://www.tkk7.com/bjwulin/services/trackbacks/409621.html
spring data redis鎺ㄨ崘jedis錛屽洜姝ょ◢寰妸jedis紼嶅井鐪嬩簡(jiǎn)涓嬶紝jedis鏄痳edis鐨刯ava瀹㈡埛绔?br />
sdr鏀寔浣庡眰嬈$殑閫氳繃榪炴帴鍣╟onnector榪炴帴鍒癛edis錛屾敮鎸侀珮灞傛鐨勫弸濂界殑妯℃澘綾籖edisTemplate,RedisTemplate鏄緩绔嬪湪浣庣駭鍒殑connection鍩虹涔嬩笂銆俁edisConnection鎺ユ敹鎴栬繑鍥炲瓧鑺傛暟緇勯渶瑕佽嚜韜鐞嗚繛鎺ワ紝姣斿鍏抽棴榪炴帴錛岃孯edisTemplate璐熻矗澶勭悊涓茶鍖栧拰鍙嶄覆琛屽寲錛屽茍涓旂鐞嗗榪炴帴榪涜綆$悊銆俁edisTemplate鎻愪緵鎿嶄綔瑙嗗浘錛屾瘮濡?Bound)ValueOperations,
(Bound)ListOperations,(Bound)SetOperations,(Bound)ZSetOperations,(Bound)HashOperations銆俁edisTemplate鏄嚎紼嬪畨鍏ㄧ殑錛岃兘澶熺敤浜庡涓疄渚嬩腑銆?/div>
RedisTemplate榛樿閫夋嫨java-based涓茶鍖?涔熷彲浠ュ垏鎹負(fù)鍏跺畠鐨勪覆琛屽寲鏂瑰紡錛屾垨鑰呰緗甧nabledDefaultSerializer涓篺alse鎴栬呰緗覆琛屽寲鍣ㄤ負(fù)null錛屽垯RedisTemplate鐢╮aw byte arrays琛ㄧず鏁版嵁銆?br />
sdr榪炴帴鍒皉edis閫氳繃RedisConnectionFactory鏉ヨ幏寰楁湁鏁堢殑RedisConnection銆俁edisConnection璐熻矗寤虹珛鍜屽鐞嗗拰redis鍚庣閫氫俊銆俁edisConnection鎻愪緵getNativeconnection榪斿洖鐢ㄦ潵閫氫俊鐨勫簳灞俢onnection銆?br />
spring閰嶇疆錛?br />
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:p="http://www.springframework.org/schema/p"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
        p:host-name="server" p:port="6379" p:use-pool="true"/>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
    p:connection-factory-ref="jedisConnectionFactory"/>
</beans>

浣跨敤鏍蜂緥錛?br />
public class Example {

  // 娉ㄥ叆瀹為檯鐨勬ā鏉?br />  @Autowired
  private RedisTemplate<String, String> template;//琛ㄧず閿奸兘鏄瓧絎︿覆綾誨瀷銆?br />
  // 娉ㄥ叆妯℃澘涓篖istOperations.
  @Resource(name="redisTemplate")
  private ListOperations<String, String> listOps;

  public void addLink(String userId, URL url) {
    listOps.leftPush(userId, url.toExternalForm());
  }
}

鐢變簬澶ч儴鍒哛edis閿煎瀛樺偍閮芥槸閿煎潎涓哄瓧絎︿覆錛屽洜姝dr鍋氫簡(jiǎn)涓や釜鎵╁睍錛屽嵆StringRedisConnection浠ュ強(qiáng)StringRedisTemplate錛屼袱涓墿灞曞潎閲囩敤StringRedisSerializer銆?br />
<bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"
    p:connection-factory-ref="jedisConnectionFactory"/>

浠g爜紺轟緥錛?br />
@Autowired
  private StringRedisTemplate redisTemplate;

  public void addLink(String userId, URL url) {
    redisTemplate.opsForList().leftPush(userId, url.toExternalForm());
  }

RedisTemplate浠ュ強(qiáng)鍏跺瓙綾婚兘鍏佽寮鍙戣呴氳繃RedisCallback鐩存帴璺烺edis閫氫俊錛屽湪callback涓紝寮鍙戣呰幏寰桼edisConnection銆係tringRedisTemplate鍦╟allback涓彲浠ヨ幏寰桽tringRedisConnection錛岄渶瑕佸己鍒惰漿鎹€?br />
鍒╃敤Redis瀹炵幇Jms鐨勫彂甯冨拰璁㈤槄鐨勫姛鑳斤細(xì)
鍙戝竷淇℃伅錛氬彲浠ラ氳繃RedisConnection鎴栬匯edisTemplate鏉ュ疄鐜般?br />redisConnection.publish(byte[] msg,byte[] channel);
template.convertAndSend("hello!","world");
鎺ユ敹娑堟伅錛氬湪鎺ュ彈鏀撅紝鍙互璁㈤槄鏍規(guī)嵁棰戦亾鍚嶆潵璁㈤槄涓涓垨澶氫釜棰戦亾鎴栬呴氳繃妯″紡鍖歸厤銆傛ā寮忓尮閰嶉潪甯告湁鐢紝鍥犱負(fù)瀹冧笉浠呭厑璁鎬竴涓懡浠ゅ垱寤哄涓闃咃紝涔熻兘鐩戝惉鍦ㄨ闃呭垱寤轟箣鍚庝駭鐢熺殑鏂扮殑棰戦亾錛堝彧瑕佸尮閰嶆寚瀹氱殑妯″紡錛夈?br />鍦ㄤ綆灞傞潰涓婏紝RedisConnection鎻愪緵subscribe鍜宲Subscribe錛堟牴鎹ā寮忓尮閰嶏級(jí)鏂規(guī)硶錛屽涓閬撳拰妯″紡鍙互涓璧蜂綔涓哄弬鏁幫紝RedisConnection涔熸彁渚涗簡(jiǎn)getSubscription鍜宨sSubscribed鏂規(guī)硶銆傚綋鐢╦edis榪炴帴鍣ㄦ椂錛岃闃呭懡浠ゆ槸鍚屾鐨勶紝鍥犳浼?xì)漶旂敓鍫靛锛屼細(xì)瀵艰嚧璇ゾU跨▼涓鐩寸瓑寰呮秷鎭紝鍙湁褰撹闃呭彇娑堢殑鏃跺欙紝鎵嶉噴鏀劇嚎紼嬶紝閲囩敤unsubcribe鎴杙Unsubscribe鏉ュ彇娑堝悓綰跨▼鐨勮闃呫備負(fù)浜?jiǎn)澶勭悊璁㈤槄娑堟伅锛岄渶瑕佸疄鐜癕essageListener callback錛屾瘡嬈″綋鏂扮殑娑堟伅杈懼埌鏃訛紝浼?xì)璋冪敤callback鎵цonMessage鏂規(guī)硶錛岃鏂規(guī)硶鑳藉鑾峰緱娑堟伅錛岄閬擄紝浠ュ強(qiáng)鍖歸厤鐨勬ā寮忋?br />
鐢變簬MessageListener鐨勫ぉ鐒跺牭濉烇紝搴曞眰闈㈢殑娑堟伅鎺ユ敹涓嶅お琚漢鎺ュ彈錛岃屼笖瀹冭姹傚鐞嗚繛鎺ュ拰綰跨▼鐨勭鐞嗭紝涓轟簡(jiǎn)瑙勯伩榪欎釜闂錛宻dr鎻愪緵RedisMessageListenerContainer,瀹冭鐢ㄦ潵鎺ュ彈浠嶳edis棰戦亾浼犳潵鐨勬秷鎭茍娉ㄥ叆MessageListener,RedisMessageListenerContainer璐熻矗鐩稿簲鎺ュ彈娑堟伅鐨勭嚎紼嬪茍媧懼彂鍒板鐞嗙殑鐩戝惉鍣ㄤ腑銆?br />
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:redis="http://www.springframework.org/schema/redis"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/redis http://www.springframework.org/schema/redis/spring-redis.xsd">

  <!-- the default ConnectionFactory -->
  <redis:listener-container>
    <!-- the method attribute can be skipped as the default method name is "handleMessage" -->
    <redis:listener ref="listener" method="handleMessage" topic="chatroom" />
  </redis:listener-container>
 
  <bean id="listener" class="redisexample.DefaultMessageDelegate"/>
  ...
<beans>

redis瀵逛簨鍔℃彁渚涙敮鎸侊紝鍖呮嫭multi,exec,discard鍛戒護(hù)錛岃繖浜涘懡浠や篃鑳界敤浜嶳edisTemplate錛岀劧鍚巖edisTemplate涓嶄繚璇佺敤鐩稿悓鐨勮繛鎺ュ湪鍚屼竴涓簨鍔℃墽琛屾墍鏈夋搷浣溿俿dr鎻愪緵SessionCallback鎺ュ彛鐢ㄤ簬鍚岀嚎紼嬬殑澶氭搷浣滄墽琛屻?br />
Redis鏀寔綆¢亾錛坧ipelining),綆¢亾鍙互鍙戦佸涓懡浠ゅ埌鏈嶅姟绔棤闇絳夊緟鍙嶉鐒跺悗璇誨彇鍗曚竴姝ョ殑鍙嶉銆傜閬撳湪浣犻渶瑕佷竴琛屽彂閫佸涓懡浠ゆ槸鎻愬崌鎬ц兘錛屾瘮濡傚鐩稿悓鐨勫垪琛ㄥ鍔犲涓厓绱犮傚鏋滀笉鍏蟲敞綆¢亾鎿嶄綔鐨勭粨鏋滐紝鍒欏彲浠ヨ皟鐢≧edisTemplate鏍囧噯鐨別xcute鏂規(guī)硶錛屼紶閫抰rue浣滀負(fù)pipeline鍙傛暟銆俥xcutePipelined鏂規(guī)硶鎵цRedisCallback鎴栬卻essionCallback錛岀劧鍚庤繑鍥炵粨鏋溿?br />
List<Object> results = stringRedisTemplate.executePipelined(new RedisCallback<Object>() {
    public Object doInRedis(RedisConnection connection) throws DataAccessException {
        StringRedisConnection stringRedisConn = (StringRedisConnection)connection;
        for(int i=0; i< batchSize; i++) {
            stringRedisConn.rPop("myqueue");
        }
        return null;//蹇呴』榪斿洖null
    }
});//results涓簃yqueue鐨剉alue銆?br />
Redis2.6浠ュ強(qiáng)鏇撮珮鐨勭増鏈敮鎸侀氳繃eval鍜宔valsha鍛戒護(hù)鎵цlua script銆俿dr灝佽浠g爜鎵ц錛屼覆琛屽寲浠ュ強(qiáng)鍒╃敤浠g爜緙撳瓨銆俿cripts鑳藉閫氳繃RedisTemplate鐨別xecute鏂規(guī)硶鏉ヨ繍琛岋紝RedisTemplate鐢ㄤ竴涓彲閰嶇疆鐨凷criptExecutor鏉ユ墽琛屾彁渚涚殑浠g爜銆傜己鐪佺殑ScriptExecutor閫氳繃鑾峰彇浠g爜鐨剆ha1錛屽皾璇曡繍琛宔valsha錛屽け璐ュ悗鎵цeval銆?br />
lua script涓鑸敤浜庡師瀛愭搷浣滀笖鍛戒護(hù)鐨勮涓鴻鍙﹀鐨勫懡浠ょ粨鏋滄墍褰卞搷銆?br />
閰嶇疆錛?br />
<bean id="script" class="org.springframework.data.redis.core.script.DefaultRedisScript">
        <property name="location" value="classpath:META-INF/scripts/checkandset.lua"/>
        <property name="resultType" value="java.lang.Boolean"/>
    </bean>

java浠g爜錛?br />
@Autowired
    RedisScript<Boolean> script;

    public boolean checkAndSet(String expectedValue, String newValue) {
        return redisTemplate.execute(script, Collections.singletonList("key"),
            expectedValue, newValue);
    }

lua script:
-- checkandset.lua
local current = redis.call('GET', KEYS[1])
if current == ARGV[1]
then
    redis.call('SET', KEYS[1], ARGV[2])
    return true
end
return false
redis鏀寔綾誨瓨鏀懼湪org.springframework.data.redis.support錛孯edisSet鍜孯edisZSet鎻愪緵Redis鏀寔鐨刬ntersection浠ュ強(qiáng)union絳夋柟娉曘俁edisList鍙互瀹炵幇Queue浠ュ強(qiáng)Deque鏉ュ疄鐜癋IFO鍜孡iFO銆?br />閰嶇疆錛?br />
<bean id="queue" class="org.springframework.data.redis.support.collections.DefaultRedisList">
    <constructor-arg ref="redisTemplate"/>
    <constructor-arg value="queue-key"/>
  </bean>
浠g爜錛?br />
// injected
  private Deque<String> queue;

  public void addTag(String tag) {
    queue.push(tag);
  }

Sdr鎻愪緵浜?jiǎn)涓涓猻pring3.1 cache abstraction鐨勫疄鐜般傞厤緗細(xì)
<bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager" c:template-ref="redisTemplate"/>







]]>maven瀛︿範(fàn)澶囧繕http://www.tkk7.com/bjwulin/archive/2014/02/08/409611.html涓嶅仛嫻簛鐨勪漢涓嶅仛嫻簛鐨勪漢Sat, 08 Feb 2014 05:39:00 GMThttp://www.tkk7.com/bjwulin/archive/2014/02/08/409611.htmlhttp://www.tkk7.com/bjwulin/comments/409611.htmlhttp://www.tkk7.com/bjwulin/archive/2014/02/08/409611.html#Feedback0http://www.tkk7.com/bjwulin/comments/commentRss/409611.htmlhttp://www.tkk7.com/bjwulin/services/trackbacks/409611.html
浜庢槸錛屼竴鐩村湪鎺掓枼maven錛屼笉鎰挎剰瀛︿範(fàn)錛屼簬鏄浜巑aven濮嬬粓鏄彍楦燂紝鐜板湪瓚婃潵瓚婂鐨勯」鐩兘寮濮嬬敤maven錛屼簬鏄紝涓嶆効鎰忚繕鏄痬aven灝忕櫧錛岄夋嫨瀛︿範(fàn)錛岄夋嫨澶囧繕榪欎釜瀛︿範(fàn)榪囩▼銆?br />
eclipse indigo瀹夎m2e錛岄夋嫨瀹夎璺緞涓猴細(xì)http://download.eclipse.org/releases/indigo錛岀劧鍚庨夋嫨m2e錛屾柊鐨刴2e鐗堟湰涓嶈兘鍦╥ndigo瀹夎錛屽畨瑁呭畬鍚庯紝鍦╡clipse 鐨剅eference閲岄潰璁劇疆maven鐨刬nstallations浠ュ強(qiáng)user setting錛屾敼鍙橀噷闈㈢殑setting鏂囦歡涓哄畨瑁呯洰褰昞conf\settings.xml鏂囦歡錛屽茍鏀瑰彉璇ユ枃浠朵腑鐨勬湰鍦頒粨搴撹礬寰?lt;localRepository>銆?/div>
涓嬭澆mvn錛岀劧鍚庤瀹氱郴緇焢ath錛岃緗甅AVEN_OPTS鐨勫間負(fù)錛?Xms128m -Xmx512m絳夊氨涓嶇敤鍟板棪浜?jiǎn)銆傚厛鐪嬩竴涓懡浠わ紝鍏ヤ釜闂細(xì)
mvn archetype:create -DgroupId=com.studio -DartifactId=helloWorld -DpackageName=com.studymaven
archetype鏄痬vn鐨勪竴涓彃浠訛紙plugin),create鏄痑rchetype鐨勪竴涓換鍔★紙task錛夈?D鍚庨潰鐨勬槸榪欎釜浠誨姟鐨勫弬鏁般俫roupId涓鑸槸寮鍙戠粍緇囩殑Id錛宎rtifactId鏄湰欏圭洰鐨勫叿浣撳悕縐?

mvn鎻掍歡鏈夊摢浜涗換鍔★紝鍙互鐢╩vn help:describe -Dplugin=archetype錛宧elp鏄彃浠訛紝describe鏄痟elp鐨勪換鍔★紝鏁翠釜鍛戒護(hù)鏄劇ずarchetype鐨勬墍鏈変換鍔′俊鎭紝濡傝鏌ョ湅璇︾粏鐨勫弬鏁頒俊鎭紝鍒欏姞鍏?Dfull鍙傛暟銆?br />
mvn鐨勫懡浠ゆ敮鎸佺畝鍐欙紝姣斿mvn compile=mvn compile:compile錛屽彟澶栧父鐢ㄧ殑綆鍐欏懡浠ゆ湁錛歮vn compile 錛宮vn test-compile錛宮vn test錛宮vn package錛宮vn install 灝嗗簲鐢ㄥ彂甯冨埌鏈湴浠撳簱錛宮vn deploy 澶嶅埗鏈緇堢殑鍖呰嚦榪滅▼浠撳簱錛屽叡浜粰鍏跺畠寮鍙戜漢鍛樺拰欏圭洰渚涘叾浠栭」鐩嬌鐢ㄣ?br />
maven閲囩敤鍧愭爣綺劇‘瀹氫綅姣忎竴涓瀯寤猴紙artifect)錛屼篃灝辨槸閫氳繃涓浜涘弬鏁扮簿紜壘鍒板悎閫傜殑jar鍖呫?/div>
mvn archetype:generate鍛戒護(hù)鍙互浠ユ彁紺虹殑鏂瑰紡濉啓create浠誨姟鐨勫弬鏁幫紝鐢熸垚瀹屾瘯鍚庯紝鍙互閫氳繃m2e瀵煎叆鍒癳clipse錛屾垨鑰呯洿鎺ュ湪eclipse涓緩绔媘aven project錛岄夋嫨maven-archetype-quickstart銆?br />
褰撶敤eclipse寤虹珛欏圭洰鍚庯紝鍙互閫夋嫨欏圭洰鐨刾om.xml錛岀劧鍚巖un as錛岄夋嫨鍚堥傜殑鍛戒護(hù)錛屽鏋滄病鏈夊悎閫傜殑鍛戒護(hù)錛屽垯鍙互閫氳繃閫夋嫨Maven buid… 鑷畾涔塎aven榪愯鍛戒護(hù)錛屽湪寮瑰嚭瀵硅瘽妗嗕腑鐨凣oals涓欏逛腑杈撳叆鎴戜滑鎯寵鎵ц鐨勫懡浠ゃ?br />
鏈鍚庝竴鐐癸紝鎴戜滑鏇村鏃跺欓渶瑕佹簮浠g爜鍖咃紝閭d箞鍙互閫夋嫨闇瑕佹簮浠g爜鐨刯ar錛岀劧鍚庡彸閿紝鐒跺悗maven錛岀劧鍚嶥ownload source鍗沖彲銆?br />


]]>flex mobile寮鍙戠殑涓浜涙敞鎰忕偣http://www.tkk7.com/bjwulin/archive/2014/02/07/409562.html涓嶅仛嫻簛鐨勪漢涓嶅仛嫻簛鐨勪漢Thu, 06 Feb 2014 16:20:00 GMThttp://www.tkk7.com/bjwulin/archive/2014/02/07/409562.htmlhttp://www.tkk7.com/bjwulin/comments/409562.htmlhttp://www.tkk7.com/bjwulin/archive/2014/02/07/409562.html#Feedback0http://www.tkk7.com/bjwulin/comments/commentRss/409562.htmlhttp://www.tkk7.com/bjwulin/services/trackbacks/409562.html2銆佹瘡涓猇iew閮芥湁createReturnObject()錛屽鍐欒鏂規(guī)硶錛屽彲浠ヤ負(fù)涓婁竴涓鍥懼睍鐜版彁渚涙暟鎹紝涓婁竴涓鍥懼彲浠ラ噰鐢細(xì)navigator.poppedViewReturnedObject.object鏉ュ緱鍒版暟鎹?br />3銆佸鏋滈渶瑕佸湪搴旂敤紼嬪簭榪愯鏈熼棿淇濆瓨鏁版嵁錛屽垯闇瑕佽緗簲鐢ㄧ殑persistNavigatorState灞炴э紝騫朵笖緙栧啓navigatorStateLoading 鍜?navigatorStateSaving涓や釜鏃墮棿鐨勫鐞嗘柟娉曘?br />4銆乫lex mobile涓嶈兘浣跨敤mx Alert錛屼篃涓嶈兘浣跨敤spark Alert錛屽畼鏂瑰緩璁嬌鐢⊿kinnablePopUpContainer銆?br />5銆佸彲浠ョ敤fx:Component className="AlertMsg"宓屽瀹氫箟緇勪歡綾匯傞氳繃new AlertMsg()鏉ョ敓鎴愬疄渚嬨?br />

]]>
flex mobile閫傚簲璁懼灝哄http://www.tkk7.com/bjwulin/archive/2014/02/06/409558.html涓嶅仛嫻簛鐨勪漢涓嶅仛嫻簛鐨勪漢Thu, 06 Feb 2014 11:26:00 GMThttp://www.tkk7.com/bjwulin/archive/2014/02/06/409558.htmlhttp://www.tkk7.com/bjwulin/comments/409558.htmlhttp://www.tkk7.com/bjwulin/archive/2014/02/06/409558.html#Feedback0http://www.tkk7.com/bjwulin/comments/commentRss/409558.htmlhttp://www.tkk7.com/bjwulin/services/trackbacks/409558.html
flex sdk4.5鍙?qiáng)浠ヤ笂鍦ˋpplication鍙?qiáng)鍏跺瓙绫讳笂鎻愪緵浜?jiǎn)ApplicationDpi錛屽茍鏀寔3縐嶇被鍨嬬殑dpi錛?60,240,320錛屽熀鏈笂鍙互娑電洊鐩墠宸叉湁鐨勮澶囩殑dpi銆?br />
濡傛灉璁懼畾Application鐨刟pplicationDpi錛宖lex runtime浼?xì)閽堝鐭㈤噺鍥句互鍙?qiáng)鏂囨湰鑷姩鍋歞pi鑷傚簲錛岀敱浜庣煝閲忓浘緇樺埗浼?xì)漶旂敓鐥晿q癸紝鎵浠ユ渶濂藉湪璁捐鏃舵寜鐓т綆dpi錛堟瘮濡?60錛孉dobe瀹樻柟寤鴻)鏉ヨ璁★紝鍦╠pi=240鐨勮澶囦笂錛宺untime浼?xì)鑷姩灏嗙煝閲忓浘鏀惧堫C負(fù)1.5鍊嶃?br />
瀵逛簬浣嶅浘鏉ヨ錛屾斁澶т細(xì)瀵艱嚧鐥曡抗錛屽洜姝lex sdk鎻愪緵浜?jiǎn)MultiDPIBitmapSource綾伙紝鍏佽鐢ㄦ埛閽堝160,240,320鍒嗗埆鎻愪緵浣嶅浘銆俶obile app鐨剆plash涓嶈兘閲囩敤MultiDPIBitmapSource錛屾渶濂戒嬌鐢ㄥぇ浣嶅浘錛岃runtime鑷姩緙╁皬瀹冦?br />
鍦╯kin涓紝鍒ゆ柇applicationDpi錛?br />
switch (applicationDPI) {
case DPIClassification.DPI_320: {
upBorderSkin = skins.assets320.TransparentRoundedButton_up;
downBorderSkin = skins.assets320.TransparentRoundedButton_down;
break;
}


鍦╟ss涓紝閲囩敤@media錛?br />@media (application-dpi: 160) {
 Button { fontSize: 20; }
}

瑕佹彁渚涜壇濂戒綋楠岀殑splash錛岄渶瑕佹墿灞昐plashScreen綾伙紝閲嶅啓getImageClass鏂規(guī)硶錛屾瘮濡傦細(xì)
override mx_internal function getImageClass(dpi:Number, aspectRatio:String):Class {
if (dpi == DPIClassification.DPI_160)
return SplashImage160;
else if (dpi == DPIClassification.DPI_240)
return SplashImage240;
else if (dpi == DPIClassification.DPI_320)
return SplashImage320; return null;
}
}



]]>
flex mobile鎬ц兘浼樺寲鐐?/title><link>http://www.tkk7.com/bjwulin/archive/2014/02/06/409550.html</link><dc:creator>涓嶅仛嫻簛鐨勪漢</dc:creator><author>涓嶅仛嫻簛鐨勪漢</author><pubDate>Thu, 06 Feb 2014 07:27:00 GMT</pubDate><guid>http://www.tkk7.com/bjwulin/archive/2014/02/06/409550.html</guid><wfw:comment>http://www.tkk7.com/bjwulin/comments/409550.html</wfw:comment><comments>http://www.tkk7.com/bjwulin/archive/2014/02/06/409550.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bjwulin/comments/commentRss/409550.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bjwulin/services/trackbacks/409550.html</trackback:ping><description><![CDATA[<div>榪欎釜mobile寮鍙戯紝涓鑸師鐢熷紑鍙戜篃璁告槸鏈鍚堥傜殑鏂瑰紡錛屼絾鏄秹鍙?qiáng)鍒拌法邈^鍙扮殑闂錛屾湁綺懼姏鐨勫洟闃熶竴鑸兘浼?xì)閫愪釜鍩轟簬縐誨姩鎿嶄綔緋葷粺榪涜寮鍙戙備絾鏄垜榪芥眰鐭皬錛岀簿鎮(zhèn)嶏紝蹇熴備簬鏄垜甯屾湜鑳藉璺ㄥ鉤鍙幫紝鍩轟簬html5寮鍙戞槸涓涓笉閿欑殑閫夋嫨錛屼絾鏄粓絀跺洜涓哄洟闃熸洿鐔熸?zhèn)塮lex錛屼簬鏄喅瀹氶噰鐢╢lex mobile development鏉ヨ繘鍏ョЩ鍔ㄤ簰鑱旂殑寮鍙戙?br /><br />flex鏄釜鍙屽垉鍓戯紝鎴戣榪囩敤鐨勫ソ鐨勶紝鍋氬嚭鏉ョ殑鏁堟灉涓嶆瘮鍘熺敓宸紝涔熻榪囧仛鐨勪笉濂界殑錛岄偅鏁堟灉錛岄偅鎬ц兘鐪熺殑涓嶆暍鎭淮錛屾垜鐨勫洟闃熶竴鐩村湪鍙板紡鏈虹殑flex app寮鍙戜笂錛屽緢灝戝叧浜庡鎴風(fēng)app鐨勬ц兘浼樺寲錛屼簬鏄啓姝ゆ棩蹇椾綔涓哄蹇橈紝澶ч儴鍒嗛兘鏄綉緇滅殑鍏變韓瑙傜偣錛屼笉榪囩粡榪囨垜楠岃瘉鍚庡緱浠ユ敹綰籌細(xì)<br /><br />1銆佺粍浠跺敖閲忎嬌鐢ㄤ負(fù)縐誨姩寮鍙戜紭鍖栫殑錛岀毊鑲ゅ敖閲忎嬌鐢ㄧ畝媧佺殑錛屼竴鑸渶濂介氳繃graphic浠ュ強(qiáng)fxg璇硶鏉ョ粯鍒訛紝涓嶈榪囧宓屽叆浣嶅浘銆?br />2銆乮temRenderer鏈濂界敤As3鐨勶紝mobile theme閲岄潰鏈塋abelItemRenderer浠ュ強(qiáng)IconItemRenderer錛岄噷闈㈤渶瑕侀噸杞界殑鏂規(guī)硶鏈塩reateChildren,measure,drawBackground,layoutContent浠ュ強(qiáng)鏁版嵁鐨剆etter銆傜浉姣擣lex ItemRenderer錛宮obile鐨処temRenderer鐨剈pdateDisplayList鍒嗗壊鎴恉rawBackground鍜孡ayoutContent銆侷conItemRenderer浣跨敤flex ContentCache楂橀熺紦瀛樹笅杞戒笅鏉ョ殑鍥懼艦鍥懼儚銆?br />3銆佺敤styleableTextField錛岃綾誨彧鍙互鍦ˋs3涓嬌鐢紝涓嶈兘鍦╩xml涓嬌鐢紝鎬ц兘鍦╩obile涓瘮Label鍜孯ichText鎬ц兘楂樹笉灝戙?br />4銆佽flex ItemRender淇濇寔鐭╁艦褰㈢姸騫朵笖璁劇疆OpaqueBackground涓轟竴涓崟涓棰滆壊銆?br />5銆佸鏋滃湪flex ItemRenderer涓粯鍒惰嚜宸辯殑鑳屾櫙錛屽垯闇瑕佸皢autoDrawBackground涓篺alse銆?br />6銆乫lex ItemRenderer濡傛灉澶栬淇濇寔闈?rùn)鎬侊紝鍙互璁劇疆cacheAsBitmap涓簍rue銆?br />7銆乫lex ItemRenderer灝介噺灝戜嬌鐢ㄥ弻鍚戠粦瀹氥?br />8銆佸竷灞瀹氫綅緇勪歡錛屽敖閲忎嬌鐢ㄥ鍣ㄧ粍浠剁殑layout灞炴ф潵杈懼埌甯冨眬鐩殑錛屽敖閲忓皯鍦板祵鍏ュ鍣ㄧ粍浠訛紝鍑忓皯瀹瑰櫒緇勪歡灞傛絳夈?br />9銆佷紭鍏堣冭檻ConstraintLayout甯冨眬鏂瑰紡錛屽噺灝戝姩鎬佸竷灞銆?br />10銆佷嬌鐢℅roup鍜孏raphics fxg鏉ヤ唬鏇緽orderContainer銆?br />11銆乫lex mobile涓笉瑕佷嬌鐢–reationComplete鏉ュ垵濮嬪寲view鐨勫瑙傦紝鐩存帴瑕嗙洊data鐨剆etter鏂規(guī)硶錛屽敖閲忛伩鍏嶄嬌鐢ㄥ弻鍚戠粦瀹氫互鍙?qiáng)缁戝畾琛ㄨ緫旨忋?br />12銆佸緩璁湪View鐨刅iewActivate涓皟鐢ㄨ繙紼嬪紓姝ユ湇鍔′互鍙?qiáng)澶勭悊瀛惥l勪歡鐨勫垵濮嬪寲絳夊伐浣滐紝閬垮厤鐢ㄦ埛浣撻獙涓殑”鍋滈】“銆?br />13銆佺敤IncludeIn鎴朎xcludeFrom浠tate鐨勬柟寮忛殣钘忔垨鏄劇ず緇勪歡銆?br />14銆佸鏋滀竴涓猇iew鏉ュ洖琚敤鎴鋒墍鍒囧叆錛岄偅涔堟渶濂芥寚瀹氳View鐨刣estructionPolicy涓簄ever錛屽嵆鍦ㄥ唴瀛樹腑涓鐩翠繚鐣欒view鐨勫疄渚嬨?br />15銆佷嬌鐢˙itmapImage浠f浛Image榪涜鍥懼儚宓屽叆宸ヤ綔銆?br />16銆佷嬌鐢≧ectangularDropShadow浠f浛DropShadowFilter<br />17銆佷嬌鐢ㄥ浘鍍忕殑澶氫釜灝哄澶囦喚錛岃屼笉鏄嬌鐢ㄥぇ鍥?緙╂斁鎴栬呭浘褰㈠渾婊戞妧鏈潵閫傚簲涓嶅悓鍒嗚鯨鐜囧拰dpi銆?br />18銆佸敖閲忎嬌鐢╬ng鍥懼艦錛岃屼笉鏄噰鐢╦pg鎴栬単if.<br />19銆佸浜庣畝鍗曞浘褰紝鍙互閲囩敤graphics鎴栬卹ect fill絳夛紝瀵逛簬澶嶆潅涓鐐圭殑鍥懼艦寤鴻閲囩敤Adobe Illustrator鏉ョ粯鍒秄xg鐭㈤噺鍥懼艦銆?br />20銆佸敖閲忎嬌鐢╟ss錛屽埄鐢╩obile theme宸叉湁鐨勭毊鑲わ紝鍥犱負(fù)榪欎簺鐨偆宸茬粡楂樺害浼樺寲銆?br />21銆佸鏋渕obile theme鐨刢ss鏍峰紡涓嶈凍錛屽垯闇瑕佺敤as3鏉ョ紪鍐欑毊鑲ゆ垨鑰呮墿灞曞凡鏈夌粍浠剁殑鐨偆銆?/div><img src ="http://www.tkk7.com/bjwulin/aggbug/409550.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bjwulin/" target="_blank">涓嶅仛嫻簛鐨勪漢</a> 2014-02-06 15:27 <a href="http://www.tkk7.com/bjwulin/archive/2014/02/06/409550.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>ubuntu server涓嬪畨瑁卹edishttp://www.tkk7.com/bjwulin/archive/2014/01/16/409029.html涓嶅仛嫻簛鐨勪漢涓嶅仛嫻簛鐨勪漢Thu, 16 Jan 2014 07:04:00 GMThttp://www.tkk7.com/bjwulin/archive/2014/01/16/409029.htmlhttp://www.tkk7.com/bjwulin/comments/409029.htmlhttp://www.tkk7.com/bjwulin/archive/2014/01/16/409029.html#Feedback3http://www.tkk7.com/bjwulin/comments/commentRss/409029.htmlhttp://www.tkk7.com/bjwulin/services/trackbacks/409029.html
絀虹櫧鐨剈buntu server錛屼竴姝ヤ竴姝ユ潵銆?br />
1銆侀鍏堝湪ubuntu server閲岄潰瀹夎openssh server錛岄氳繃tasksel鍛戒護(hù)璋冨嚭task錛岄夋嫨openssh server榪涜瀹夎銆?br />2銆佹垜涓鑸敤windows鍔炲叕錛岀洿鎺ョ敤putty錛岄氳繃ip鍜宲ort榪炴帴鏈嶅姟鍣紝娉ㄦ剰涓鐐圭殑灝辨槸connection鐨剆econds between keepalives璁劇疆鏃墮棿紼嶅井闀夸竴浜涳紝姣曠珶閫氫俊榪囩▼鏈夊歡榪熴?br />3銆佺敤wget涓嬭澆redis鐨勭ǔ瀹氱増鏈紝鐒跺悗鐢╰ar瑙e帇錛岃繘鍏ュ埌瑙e帇鐩綍銆傛墽琛宮ake錛屾彁紺簃ake娌℃湁瀹夎銆?br />4銆佺敤sudo apt-get install make鍜宻udo apt-get install gcc瀹夎涓や釜緙栬瘧鍣ㄣ?br />5銆佸湪redis瑙e帇鐩綍涓嬶紝鎵цmake錛屽鏋滄彁紺?#8220;error: jemalloc/jemalloc.h: No such file or directory”錛屽垯鍙互鍏堟墽琛屾寚浠わ細(xì)make distclean
6銆乵ake瀹屽悗錛屼竴鑸緩璁甿ake test錛屾垜鍦╩ake test鏃舵彁紺?#8220;You need tcl 8.5 or newer in order to run the Redis test”
7銆亀get http://prdownloads.sourceforge.net/tcl/tcl8.6.0-src.tar.gz,涓嬭澆鍚庯紝榪涘叆瀹夎鐩綍錛岃繘鍏nix錛岀劧鍚庢墽琛?./configure",鐒跺悗make錛岀劧鍚巑ake install錛堝憡璇夋垜娌℃湁鏉冮檺寤虹珛鏂囦歡錛屽湪make鍓嶅姞涓妔udo錛夈?/span>
8銆佺劧鍚庤窇鍒皉edis鐨勮В鍘嬬洰褰曚笅錛屽啀榪涜"make test"錛屽緢澶氬緢澶歰k錛屽搱鍝堛?br />9銆佺劧鍚巑ake install錛岃繖鏍蜂互鍚庢墽琛屽懡浠や笉鐢ㄤ笂鍏ㄨ礬寰?br />10銆佸紑鍙戠幆澧冧腑鍚姩錛歳edis-server --port 6000,鍛戒護(hù)琛屽鎴風(fēng)錛歳edis-cli -h 192.168.1.10 -p 6000錛岀劧鍚庡氨鍙互鐢╮edis鐨勫悇縐嶅懡浠や氦浜掍簡(jiǎn)銆?br />
鎬葷粨錛氭垜鏄佺櫧錛屼笉榪噓buntu server鍩轟簬debian,鐪熷績(jī)寰堝ソ鐢紝debian鐨勬洿鏂板懆鏈熷お闀匡紝鎵浠buntu榪樻槸涓嶉敊鐨勩?br />
姣忔鍚姩redis錛屾繪槸鎶ュ憡錛歎nable to set the max number of files limit
瑙e喅鏂規(guī)錛?br />
1.鎵撳紑/etc/security/limits.conf錛岄噷闈㈡湁寰堣緇嗙殑娉ㄩ噴錛屾壘鍒板涓嬭緗?濡傛灉娌℃湁灝辨彃鍏?
* soft nofile 51200
* hard nofile 51200
2.緙栬緫/etc/pam.d/common-session錛屽姞鍏ヤ竴琛?br />session required pam_limits.so
3.緙栬緫/etc/profile錛屽姞鍏?br />ulimit -SHn 51200
閲嶅惎鏈嶅姟鍣紝鍐嶆鐧婚檰錛屾煡鐪嬪彞鏌勬暟錛屽凡緇忔紜緗負(fù)51200銆?/div>

]]> 主站蜘蛛池模板: 久久精品国产亚洲AV网站| 久久综合亚洲鲁鲁五月天| 中文字幕成人免费高清在线视频| 在线播放亚洲第一字幕| 16女性下面扒开无遮挡免费| 在线观看亚洲AV日韩AV| 亚洲日韩国产精品乱| **俄罗斯毛片免费| 男性gay黄免费网站| 91嫩草私人成人亚洲影院| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 成年人视频免费在线观看| 国产偷国产偷亚洲高清在线| 亚洲国产精品成人精品无码区 | 免费v片在线观看视频网站| 精品亚洲视频在线| 91天堂素人精品系列全集亚洲| 免费A级毛片无码久久版| 久久久精品2019免费观看 | 国产国产人免费人成成免视频| 精品亚洲A∨无码一区二区三区| 国产一区二区三区在线免费| 午夜免费福利视频| 羞羞网站免费观看| 亚洲一区二区三区在线观看蜜桃 | 亚洲另类古典武侠| 亚洲AV永久精品爱情岛论坛| 成年女人永久免费观看片| 8090在线观看免费观看| 国产精品免费久久久久影院| 亚洲欧美熟妇综合久久久久| 91亚洲精品视频| 亚洲精品无码国产| 亚洲国产精品一区二区三区久久| 免费a级毛片无码a∨蜜芽试看| 韩日电影在线播放免费版| 理论片在线观看免费| 亚洲av无码专区国产不乱码| 亚洲一区二区三区精品视频| 精品日韩亚洲AV无码一区二区三区 | 亚洲经典在线观看|