ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>欧洲亚洲一区,欧美黄色直播,亚洲日本精品一区http://www.aygfsteel.com/hyljava/category/51790.htmlzh-cnSat, 23 Nov 2013 23:13:33 GMTSat, 23 Nov 2013 23:13:33 GMT60- å››æ“vå…´å”评¡¨‹è¾…导òq›_°http://www.aygfsteel.com/hyljava/archive/2013/11/23/406728.html何云éš?/dc:creator>何云éš?/author>Sat, 23 Nov 2013 12:52:00 GMThttp://www.aygfsteel.com/hyljava/archive/2013/11/23/406728.htmlhttp://www.aygfsteel.com/hyljava/comments/406728.htmlhttp://www.aygfsteel.com/hyljava/archive/2013/11/23/406728.html#Feedback0http://www.aygfsteel.com/hyljava/comments/commentRss/406728.htmlhttp://www.aygfsteel.com/hyljava/services/trackbacks/406728.htmlå››æ“vå…´å”评¡¨‹è¾…导òq›_°
http://fd.itedu-g.cn/login.php
]]> - Springä¸çš„JDBCTemplate使用åQˆéžå¸¸è¯¦¾l†çš„é…ç½®˜q‡ç¨‹åQ?/title><link>http://www.aygfsteel.com/hyljava/archive/2013/02/22/Spring-JDBCTemplate.html</link><dc:creator>何云éš?/dc:creator><author>何云éš?/author><pubDate>Fri, 22 Feb 2013 12:33:00 GMT</pubDate><guid>http://www.aygfsteel.com/hyljava/archive/2013/02/22/Spring-JDBCTemplate.html</guid><wfw:comment>http://www.aygfsteel.com/hyljava/comments/395607.html</wfw:comment><comments>http://www.aygfsteel.com/hyljava/archive/2013/02/22/Spring-JDBCTemplate.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/hyljava/comments/commentRss/395607.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/hyljava/services/trackbacks/395607.html</trackback:ping><description><![CDATA[<div><p style="margin-bottom:0pt; margin-top:0pt; text-align:center; "><div>Springä¸çš„JDBCTemplate使用</div></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:justify; "><span style="font-size: 10.5pt; font-family: 宋体; ">æ•°æ®åº“准备:</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:justify; "><span style="font-size: 10.5pt; font-family: 宋体; ">åˆ›å¾æ•°æ®åº?/span><p class="p0" style="margin-bottom:0pt; margin-top:0pt; "><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡1.png" width="159" height="23" alt="" /></p></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:justify; "><span style="font-size: 10.5pt; font-family: 宋体; ">创å¾è¡¨ï¼š</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:justify; "><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡2.png" width="227" height="71" alt="" /></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:justify; "><span style="font-size: 10.5pt; font-family: 宋体; ">Java代ç åQ?/span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">1ã€?/span><span style="font-size: 10.5pt; font-family: 宋体; ">创å¾web 工程 </span><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 'Courier New'; background-position: initial initial; background-repeat: initial initial; ">springJdbcTemplate</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">2ã€?/span><span style="font-size: 10.5pt; font-family: 宋体; ">æ·ÕdŠ Spring能力 在æ¤éœ€è¦å°†jdbcåŒ…ä¹ŸåŒæ—¶åŠ å…¥</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡3.png" width="580" height="668" alt="" /><br /></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡4.png" width="446" height="479" alt="" /><br /></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">3ã€?/span><span style="font-size: 10.5pt; font-family: 宋体; ">é…置上mysql的连接驱åŠ?拯‚´mysqlé©±åŠ¨åŒ…ï¼Œå¦‚æžœä¸æ‹·è´æŠ¥é”™å¾ˆè¯¡å¼‚)</span><span style="font-size: 10.5pt; font-family: 宋体; "><br /></span><span style="font-size: 10.5pt; font-family: 宋体; ">åœ?/span><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 'Courier New'; background-position: initial initial; background-repeat: initial initial; ">applicationContext.xml</span><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 宋体; background-position: initial initial; background-repeat: initial initial; ">ä¸è¿›è¡Œé…¾|?/span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 宋体; background-position: initial initial; background-repeat: initial initial; ">åœ?/span><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 宋体; background-position: initial initial; background-repeat: initial initial; ">beansæ ‡ç¾ä¸å¡«å†?/span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #c0c0c0; font-family: 'Courier New'; background-position: initial initial; background-repeat: initial initial; ">bean</span> <span style="color: #7f007f; font-size: 10.5pt; font-family: 'Courier New'; ">id</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">=</span><span style="color: #2a00ff; font-style: italic; font-size: 10.5pt; font-family: 'Courier New'; ">"jdbcTemplate"</span> <span style="color: #7f007f; font-size: 10.5pt; font-family: 'Courier New'; ">class</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">=</span><span style="color: #2a00ff; font-style: italic; font-size: 10.5pt; font-family: 'Courier New'; ">"org.springframework.jdbc.core.JdbcTemplate"</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">property</span> <span style="color: #7f007f; font-size: 10.5pt; font-family: 'Courier New'; ">name</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">=</span><span style="color: #2a00ff; font-style: italic; font-size: 10.5pt; font-family: 'Courier New'; ">"dataSource"</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">ref</span> <span style="color: #7f007f; font-size: 10.5pt; font-family: 'Courier New'; ">local</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">=</span><span style="color: #2a00ff; font-style: italic; font-size: 10.5pt; font-family: 'Courier New'; ">"dataSource"</span> <span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">/></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "></</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">property</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "></</span><span style="color: #3f7f7f; font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #c0c0c0; font-family: 'Courier New'; background-position: initial initial; background-repeat: initial initial; ">bean</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span> <span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">bean</span> <span style="color: #7f007f; font-size: 10.5pt; font-family: 'Courier New'; ">id</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">=</span><span style="color: #2a00ff; font-style: italic; font-size: 10.5pt; font-family: 'Courier New'; ">"dataSource"</span> <span style="color: #7f007f; font-size: 10.5pt; font-family: 'Courier New'; ">class</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">=</span><span style="color: #2a00ff; font-style: italic; font-size: 10.5pt; font-family: 'Courier New'; ">"org.springframework.jdbc.datasource.DriverManagerDataSource"</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span> <span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">property</span> <span style="color: #7f007f; font-size: 10.5pt; font-family: 'Courier New'; ">name</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">=</span><span style="color: #2a00ff; font-style: italic; font-size: 10.5pt; font-family: 'Courier New'; ">"driverClassName"</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">value</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">com.mysql.jdbc.Driver</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "></</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">value</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "></</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">property</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">property</span> <span style="color: #7f007f; font-size: 10.5pt; font-family: 'Courier New'; ">name</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">=</span><span style="color: #2a00ff; font-style: italic; font-size: 10.5pt; font-family: 'Courier New'; ">"url"</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">value</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">jdbc:mysql://</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">localhost</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">:3306/</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">myspringjdbcdb</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "></</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">value</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "></</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">property</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">property</span> <span style="color: #7f007f; font-size: 10.5pt; font-family: 'Courier New'; ">name</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">=</span><span style="color: #2a00ff; font-style: italic; font-size: 10.5pt; font-family: 'Courier New'; ">"username"</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">value</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">root</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "></</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">value</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "></</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">property</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">property</span> <span style="color: #7f007f; font-size: 10.5pt; font-family: 'Courier New'; ">name</span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">=</span><span style="color: #2a00ff; font-style: italic; font-size: 10.5pt; font-family: 'Courier New'; ">"password"</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "><</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">value</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span><span style="font-size: 10.5pt; font-family: 'Courier New'; ">root</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "></</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">value</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "></</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">property</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span> </p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span> </p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Courier New'; "> </span> <span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; "></</span><span style="color: #3f7f7f; font-size: 10.5pt; font-family: 'Courier New'; ">bean</span><span style="color: #008080; font-size: 10.5pt; font-family: 'Courier New'; ">></span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom: 0pt; margin-top: 0pt; "><span style="color: #008080; font-size: 10.5pt; font-family: 宋体; ">4ã€?/span><span style="color: #008080; font-size: 10.5pt; font-family: 宋体; ">创å¾åŒ…ç»“æž„åÆˆä¸”å†™å‡ºç±»åQˆæ¯ä¸ªç±»ä¸å¯ä»¥æ²¡å†…容åQ?/span><span style="color: #008080; font-size: 10.5pt; font-family: 宋体; "><br /></span><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡5.png" width="283" height="249" alt="" /></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">5ã€?/span><span style="font-size: 10.5pt; font-family: 宋体; ">æ¯ä¸ª¾cÖM¸çš„æºä»£ç </span><span style="font-size: 10.5pt; font-family: 宋体; "><br /></span></p><p style="margin-bottom: 0pt; margin-top: 0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">UserDao.java</span><span style="font-size: 10.5pt; font-family: 宋体; "><br /></span><span style="font-size: 10.5pt; "><br /><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡6.png" width="312" height="197" alt="" /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 'Times New Roman'; "><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">UserDaoImp.java</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡7.png" width="576" height="334" alt="" /><br /></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">æ¤é¡¹å†™å®Œå¡«å†™</span><span style="font-size: 10.5pt; font-family: 宋体; ">åœ?/span><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 'Courier New'; background-position: initial initial; background-repeat: initial initial; ">applicationContext.xml</span><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 宋体; background-position: initial initial; background-repeat: initial initial; ">ä¸è¿›è¡Œé…¾|?/span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 宋体; background-position: initial initial; background-repeat: initial initial; ">åœ?/span><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 宋体; background-position: initial initial; background-repeat: initial initial; ">beansæ ‡ç¾ä¸å¡«å†?/span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡8.png" width="469" height="130" alt="" /><br /></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">User.java</span></p><p style="margin-bottom: 0pt; margin-top: 0pt; "><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡9.png" width="388" height="238" alt="" /><br /></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">æ¯ä¸ªæˆå‘˜å˜é‡éƒ½å†™ä¸Šgetå’Œsetæ–ÒŽ(gu¨©)³•</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">òq¶ä¸”在椾cÖM¸˜q˜è¦åŠ å…¥</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/%E5%9B%BE%E7%89%8710.png" width="550" height="147" alt="" /> <br /></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">æ¤é¡¹å†™å®Œå¡«å†™</span><span style="font-size: 10.5pt; font-family: 宋体; ">åœ?/span><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 'Courier New'; background-position: initial initial; background-repeat: initial initial; ">applicationContext.xml</span><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 宋体; background-position: initial initial; background-repeat: initial initial; ">ä¸è¿›è¡Œé…¾|?/span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 宋体; background-position: initial initial; background-repeat: initial initial; ">åœ?/span><span style="font-size: 10.5pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: 宋体; background-position: initial initial; background-repeat: initial initial; ">beansæ ‡ç¾ä¸å¡«å†?/span></p><p style="margin-bottom:0pt; margin-top:0pt; "><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡11.png" width="377" height="97" alt="" /><br /></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">‹¹‹è¯•¾c»TestAction.java</span></p><p style="margin-bottom: 0pt; margin-top: 0pt; "><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡12.png" alt="" /><br /></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="font-size: 10.5pt; font-family: 宋体; ">打å°å‡ºç»“果:</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><img src="http://www.aygfsteel.com/images/blogjava_net/hyljava/囄¡‰‡13.png" alt="" /><br /></p><p style="margin-bottom:0pt; margin-top:0pt; "> </p></div><img src ="http://www.aygfsteel.com/hyljava/aggbug/395607.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hyljava/" target="_blank">何云éš?/a> 2013-02-22 20:33 <a href="http://www.aygfsteel.com/hyljava/archive/2013/02/22/Spring-JDBCTemplate.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>Write operations are not allowed in read-only mode åªè¯»æ¨¡å¼ä¸?FlushMode.NEVER/MANUAL)写æ“作ä¸å…?/title><link>http://www.aygfsteel.com/hyljava/archive/2012/09/05/387072.html</link><dc:creator>何云éš?/dc:creator><author>何云éš?/author><pubDate>Wed, 05 Sep 2012 03:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/hyljava/archive/2012/09/05/387072.html</guid><wfw:comment>http://www.aygfsteel.com/hyljava/comments/387072.html</wfw:comment><comments>http://www.aygfsteel.com/hyljava/archive/2012/09/05/387072.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/hyljava/comments/commentRss/387072.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/hyljava/services/trackbacks/387072.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class="articalTitle" isshow="1">
<h2 id="t_656ffe730100ugtw" class="titName SG_txta">
<h2 id="t_656ffe730100ugtw" class="titName SG_txta"></h2>Write operations are not allowed in read-only mode åªè¯»æ¨¡å¼ä¸?FlushMode.NEVER/MANUAL)写æ“作ä¸å…?/h2><span id="wmqeeuq" class="time SG_txtc"> </span><!-- æ£æ–‡å¼€å§?-->
</div>
<div class="wmqeeuq" id="sina_keyword_ad_area2" class="articalContent ">
<div>
<p>org.springframework.dao.InvalidDataAccessApiUsag<wbr>eException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.</p>
<p><span style="color: #ff0000; font-size: 18px">问题</span>åQ?span style="font-family: 宋体; color: #0055ff; font-size: 14px">åªè¯»æ¨¡å¼ä¸?FlushMode.NEVER/MANUAL)写æ“作ä¸è¢«å…è®¸ï¼šæŠŠä½ çš„Sessionæ”ÒŽ(gu¨©)ˆFlushMode.COMMIT/AUTO或者清除事务定义ä¸çš„readOnlyæ ‡è®°ã€?/span></p>
<p> <wbr></p>
<p>é”™è¯¯åŽŸå› :<br /> <wbr><span style="color: #5500ff; font-size: 16px"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>OpenSessionInViewFilter在getSession的时å€?会把获å–回æ¥çš„sessionçš„flush mode è®¾äØ“<span style="color: #0f9932">FlushMode.NEVER</span>ã€‚ç„¶åŽæŠŠè¯¥sessionFactory¾l‘定åˆ?span style="color: #0f9932">TransactionSynchronizati<wbr>onManager</span>åQŒä‹Érequest的整个过½E‹éƒ½ä½¿ç”¨åŒä¸€ä¸ªsessionåQŒåœ¨è¯äh±‚˜q‡åŽå†æŽ¥é™¤è¯¥sessionFactory的绑定,最å?/span><span style="color: #5500ff; font-size: 16px">closeSessionIfNecessary</span><span style="color: #5500ff; font-size: 16px">æ ÒŽ(gu¨©)®è¯¥session是å¦å·²å’Œtransaction¾l‘定æ¥å†³å®šæ˜¯å¦å…³é—session。在˜q™ä¸ª˜q‡ç¨‹ä¸ï¼Œè‹¥HibernateTemplate å‘现自当å‰sessionæœ‰ä¸æ˜¯readOnlyçš„transactionåQŒå°±ä¼šèŽ·å–到FlushMode.AUTO SessionåQŒä‹Éæ–ÒŽ(gu¨©)³•拥有写æƒé™ã€?/span><span style="color: #5500ff; font-size: 16px">ä¹Ÿå³æ˜¯ï¼Œå¦‚æžœæœ‰ä¸æ˜¯readOnlyçš„transactionž®±å¯ä»¥ç”±Flush.NEVERè½¬äØ“Flush.AUTO,拥有insert,update,deleteæ“作æƒé™åQŒå¦‚果没有transactionåQŒåƈ且没有å¦å¤–äh为地设flush modelçš„è¯åQŒåˆ™doFilter的整个过½E‹éƒ½æ˜¯Flush.NEVER。所以å—transaction<span style="color: #00cc22">(</span><u><span style="color: #00cc22">声明å¼çš„事务</span></u><span style="color: #00cc22">)</span>ä¿æŠ¤çš„æ–¹æ³•æœ‰å†™æƒé™ï¼Œæ²¡å—ä¿æŠ¤çš„åˆ™æ²¡æœ‰ã€?/span><br /><br /><u>解决æ–ÒŽ(gu¨©)³•:</u></p>
<p><span style="color: #5500ff">web.xmlé…置里添åŠ?/span><br /><span style="color: #0f9932"><filter></span><br /><span style="color: #0f9932"> <wbr> <wbr> <filter-name>OpenSessionInViewFilter</filter-name></span><br /><span style="color: #0f9932"> <wbr> <wbr> <filter-class></span><br /><span style="color: #0f9932"> <wbr> <wbr> <wbr> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</span><br /><span style="color: #0f9932"> <wbr> <wbr> </filter-class></span><br /><span style="color: #0f9932"> <wbr> <wbr> <init-param></span><br /><span style="color: #0f9932"> <wbr> <wbr> <wbr> <param-name>sessionFactoryBeanName</param-name></span><br /><span style="color: #0f9932"> <wbr> <wbr> <wbr> <param-value>sessionFactory</param-value></span><br /><span style="color: #0f9932"> <wbr> <wbr> </init-param></span><br /><span style="color: #0f9932"> <wbr> <wbr> <init-param></span><br /><span style="color: #0f9932"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <param-name>singleSession</param-name></span><br /><span style="color: #0f9932"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <param-value>true</param-value> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr></span><br /><span style="color: #0f9932"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> </init-param></span><br /><span style="color: #0f9932"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <init-param></span><br /><span style="color: #0f9932"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <param-name> flushMode </param-name></span><br /><span style="color: #0f9932"> <wbr> <wbr> <param-value>AUTO </param-value> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr></span><br /><span style="color: #0f9932"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> </init-param></span><br /><span style="color: #0f9932"></filter></span><br /> <wbr> <wbr>// <wbr> <wbr> 。。。ã€?/p>
<p><br /><span style="color: #0f9932"><filter-mapping></span><br /><span style="color: #0f9932"> <wbr> <wbr> <filter-name>OpenSessionInViewFilter</filter-name></span><br /><span style="color: #0f9932"> <wbr> <wbr> <url-pattern>/*</url-pattern></span><br /><span style="color: #0f9932"></filter-mapping></span></p>
<p> <wbr></p>
<p><span style="color: #0f9932">如果在交¾l™spring ½Ž¡ç†çš„æƒ…况下åQŒåœ¨beans.xml 里的é…ç½®</span></p>
<p><span style="color: #0f9932"> <wbr><bean id="txManager"<br /> <wbr> <wbr>class="org.springframework.orm.hibernate3.HibernateTransactionMana<wbr>ger"><br /> <wbr> <wbr><property name="sessionFactory" ref="sessionFactory" /><br /> <wbr></bean></span></p>
<p><span style="color: #0f9932"> <wbr><aop:config><br /> <wbr> <wbr><aop:pointcut id="bussinessService"<br /> <wbr> <wbr> <wbr>expression="execution(* com.fan.service.base.*.*(..))" /><br /> <wbr> <wbr><aop:advisor pointcut-ref="bussinessService"<br /> <wbr> <wbr> <wbr>advice-ref="txAdvice" /><br /> <wbr></aop:config></span></p>
<p><span style="color: #0f9932"> <wbr><tx:advice id="txAdvice" transaction-manager="txManager"><br /> <wbr> <wbr><tx:attributes><br /> <wbr> <wbr> <wbr><tx:method name="get*" read-only="false" propagation="NOT_SUPPORTED"/><br /> <wbr> <wbr> <wbr><tx:method name="find*" read-only="false" propagation="NOT_SUPPORTED"/><br /> <wbr> <wbr> <wbr><tx:method name="save*" propagation="REQUIRED"/> // å¦‚æžœä¸æŠŠsave update delete都酾|®ä¸ŠåQ?br /> <wbr> <wbr> <wbr><tx:method name="update*" propagation="REQUIRED"/> <wbr>//˜q™äº›æ“ä½œä¼šæ— æ•?br /> <wbr> <wbr> <wbr><tx:method name="delete*" propagation="REQUIRED"/><br /> <wbr> <wbr></tx:attributes><br /> <wbr></tx:advice></span></p></div></div><img src ="http://www.aygfsteel.com/hyljava/aggbug/387072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hyljava/" target="_blank">何云éš?/a> 2012-09-05 11:57 <a href="http://www.aygfsteel.com/hyljava/archive/2012/09/05/387072.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>LOG4J的解æž?/title><link>http://www.aygfsteel.com/hyljava/archive/2012/05/28/379380.html</link><dc:creator>何云éš?/dc:creator><author>何云éš?/author><pubDate>Mon, 28 May 2012 11:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/hyljava/archive/2012/05/28/379380.html</guid><wfw:comment>http://www.aygfsteel.com/hyljava/comments/379380.html</wfw:comment><comments>http://www.aygfsteel.com/hyljava/archive/2012/05/28/379380.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/hyljava/comments/commentRss/379380.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/hyljava/services/trackbacks/379380.html</trackback:ping><description><![CDATA[<p>æ–ÒŽ(gu¨©)³•一ã€?解决的办法自然是用相对èµ\径代替ç»å¯¹èµ\径,其实log4jçš„FileAppender本èínž®±æœ‰˜q™æ ·çš„æœºåˆÓž¼Œå¦‚:log4j.appender.logfile.File=${WORKDIR}/logs/app.log <br />其专${WORKDIR}/”是个å˜é‡åQŒä¼šè¢«System Propertyä¸çš„“WORKDIR”çš„å€ég»£æ›Ñ€‚è¿™æ øP¼Œæˆ‘们ž®±å¯ä»¥åœ¨log4jåŠ è²é…置文äšg之å‰åQŒå…ˆç”¨System.setProperty ("WORKDIR", WORKDIR);讄¡½®å¥½æ ¹è·¯å¾„åQŒæ¤æ“作å¯é€šè¿‡ä¸€åˆå§‹çš„servlet˜q›è¡Œã€?</p>
<p>æ–ÒŽ(gu¨©)³•二ã€å¯ä»¥ä‹É用æœåŠ¡å™¨çŽ¯å¢ƒå˜é‡ <br />log4j的酾|®æ–‡ä»¶æ”¯æŒæœåŠ¡å™¨çš„vm的环境å˜é‡ï¼Œæ ¼å¼¾cÖM¼¼${catalina.home} <br />log4j.appender.R=org.apache.log4j.RollingFileAppender <br />log4j.appender.R.File=${catalina.home}/logs/logs_tomcat.log <br />log4j.appender.R.MaxFileSize=10KB <br />å…¶ä¸çš?{catalina.home}òq‰™žwindows¾pÈ»Ÿçš„环境å˜é‡ï¼Œ˜q™ä¸ªçŽ¯å¢ƒå˜é‡ž®×ƒ¸éœ€è¦åœ¨Windows¾pÈ»Ÿçš„环境å˜é‡ä¸è®„¡½®ã€‚ä¹‹æ‰€ä»¥è¿™æ øP¼Œä½ å¯ä»¥çœ‹çœ‹tomcat\bin\catalina.bat(startup,shutdown都是调用˜q™ä¸ª)里é¢è‡ªå¸¦æœ?Dcatalina.home= "%CATALINA_HOME%" 。ç‘ôæ‰¿è¿™ä¸ªæ€æƒ³åQŒæ‰€ä»¥ä½ 也å¯ä»¥è‡ªå·Þp®¾å®šä¸€ä¸ªå‚æ•?Dmylog.home="D:/abc/log"到对应的æœåС噍javaå¯åŠ¨çš„vm傿•°ä¸?</p>
<p>æ–ÒŽ(gu¨©)³•三ã€é€šè¿‡servletåˆå§‹åŒ–init()æ–ÒŽ(gu¨©)³•ä¸åŠ è½½file属性实现相对èµ\å¾?<br />具体实现:åšä¸€ä¸ªservlet,在系¾lŸåŠ è½½çš„æ—¶å€?ž®±æŠŠproperties的文件读åˆîC¸€ä¸ªpropertiesæ–‡äšgä¸?那个file的属性å€?我ä‹É用的是相对目å½?æ”ÒŽ(gu¨©)މ(å‰é¢åŠ ä¸Š¾pÈ»Ÿçš„æ ¹ç›®å½•),è®©åŽæŠŠè¿™ä¸ªproperties对象讄¡½®åˆ°propertyConfigä¸åŽ»,˜q™æ ·ž®±åˆå§‹åŒ–了log的设¾|?在åŽé¢çš„使用ä¸å°±ç”¨ä¸ç€å†é…¾|®äº† <br />一般在我们开å‘项目过½E‹ä¸,log4j日志输出路径固定到æŸä¸ªæ–‡ä»¶å¤¹,˜q™æ ·å¦‚果我æ¢ä¸€ä¸ªçޝå¢?日志路径åˆéœ€è¦é‡æ–îC¿®æ”?æ¯”è¾ƒä¸æ–¹ä¾?ç›®å‰æˆ‘é‡‡ç”¨äº†åŠ¨æ€æ”¹å˜æ—¥å¿—èµ\径方法æ¥å®žçŽ°ç›¸å¯¹è·¯å¾„ä¿å˜æ—¥å¿—æ–‡äšg <br />(1).在项目å¯åŠ¨æ—¶,装入åˆå§‹åŒ–ç±»: <br />public class Log4jInit extends HttpServlet { <br /> static Logger logger = Logger.getLogger(Log4jInit.class); <br /> public Log4jInit() { <br /> } </p>
<p> public void init(ServletConfig config) throws ServletException { <br /> String prefix = config.getServletContext().getRealPath("/"); <br /> String file = config.getInitParameter("log4j"); <br /> String filePath = prefix + file; <br /> Properties props = new Properties(); <br /> try { <br /> FileInputStream istream = new FileInputStream(filePath); <br /> props.load(istream); <br /> istream.close(); <br /> //toPrint(props.getProperty("log4j.appender.file.File")); <br /> String logFile = prefix + props.getProperty("log4j.appender.file.File");//讄¡½®è·¯å¾„ <br /> props.setProperty("log4j.appender.file.File",logFile); <br /> PropertyConfigurator.configure(props);//装入log4jé…ç½®ä¿¡æ¯ <br /> } catch (IOException e) { <br /> toPrint("Could not read configuration file [" + filePath + "]."); <br /> toPrint("Ignoring configuration file [" + filePath + "]."); <br /> return; <br /> } <br /> } </p>
<p> public static void toPrint(String content) { <br /> System.out.println(content); <br /> } <br />} <br />实际上log4j的酾|®æ–‡ä»¶log4j.propertieså¦‚äØ“é»˜è®¤åï¼Œå¯æ”¾¾|®åœ¨JVM能读到的classpath里的ä»ÀL„地方åQŒä¸€èˆ¬æ˜¯æ”‘Öœ¨WEB- INF/classes目录下。当log4j的酾|®æ–‡ä»¶ä¸å†æ˜¯é»˜è®¤å,则需è¦å¦å¤–åŠ è½½åÆˆ¾l™å‡ºå‚æ•°åQŒå¦‚ä¸?“ropertyConfigurator.configure(props);//装入log4jé…置信比 </p>
<p>(2).Web.xmlä¸çš„é…ç½® <br /><servlet> <br /> <servlet-name>log4j-init</servlet-name> <br /> <servlet-class>Log4jInit</servlet-class> <br /> <init-param> <br /> <param-name>log4j</param-name> <br /> <param-value>WEB-INF/classes/log4j.properties</param-value> <br /> </init-param> <br /> <load-on-startup>1</load-on-startup> <br /> </servlet> </p>
<p>注æ„åQšä¸Šé¢çš„load-on-startupè®¾äØ“0åQŒä»¥ä¾¿åœ¨Web容器å¯åŠ¨æ—¶å³è£…入该Servlet。log4j.propertiesæ–‡äšg攑֜¨æ ¹çš„propertieså目录ä¸åQŒä¹Ÿå¯ä»¥æŠŠå®ƒæ”‘Öœ¨å…¶å®ƒç›®å½•ä¸ã€‚应该把.propertiesæ–‡äšg集ä¸å˜æ”¾åQŒè¿™æ äh–¹ä¾¿ç®¡ç†ã€?<br />(3).log4j.propertiesä¸å³å¯é…¾|®log4j.appender.file.File为当å‰åº”用的相对路径. </p>
<p><br />以上是网上log4j日志文äšg的相对èµ\径酾|®çš„ä¸‰ç§æ–ÒŽ(gu¨©)³•åQˆæˆ‘能找到的ž®×ƒ¸‰¿U)åQŒåˆ†æžï¼š </p>
<p>æ–ÒŽ(gu¨©)³•ä¸€ä¸»è¦æ˜¯æ‰©å±•了log4jçš„RollingFileAppender¾c»ï¼Œå…¶ä»–çš„FileAppenderåŒæ ·é“ç†ã€‚扩展的æ–ÒŽ(gu¨©)³•åQŒå°±æ˜¯ç”¨ä¸€ä¸ªå¾cÕdŽ»è¦†ç›–setFileæ–ÒŽ(gu¨©)³•åQŒè¿™ä¸ªæ–¹æ³•在log4jè¯Õd–é…置文äšg生æˆappenderçš„æ—¶å€™è°ƒç”¨ï¼Œä¼ å…¥çš„å°±æ˜¯é… <br />¾|®æ–‡ä»¶ä¸çš„èµ\径,˜q™æ ·æˆ‘å°±å¯ä»¥æŒ‰ç…§è‡ªå·±çš„æƒ³æ³•在路径å‰é¢åŠ ä¸Šæ ¹èµ\径了。这¿U方法å¯ä»¥åœ¨log4j.propertiesä¸ç”¨ç›¸å¯¹è·¯å¾„自由é…ç½®log4j.appender.A1.File属性æ¥å†›_®šç”Ÿæˆçš„æ—¥å¿—相对web应用æ ?<br />目录的佾|®ã€?</p>
<p>æ–ÒŽ(gu¨©)³•二是利用æœåС噍vmä¸å·²¾lå˜åœ¨çš„环境å˜é‡å¦?{catalina.home}æ¥è®¾¾|®ç›¸å¯¹äºŽ${catalina.home}的日志èµ\径,日志åªèƒ½æ”‘Öˆ°æœåС噍å目录里,而且如果是用的其它æœåС噍åQŒåˆ™è¦æ”¹å¯¹åº”的环境å˜é‡ã€‚æ¤æ–ÒŽ(gu¨©)³•òq›_°¿UÀL¤ä¸æ–¹ä¾Ñ€?</p>
<p>æ–ÒŽ(gu¨©)³•三是扩展ActionServlet¾c»ï¼Œè¦†ç›–å…¶init()æ–ÒŽ(gu¨©)³•åQŒæ–°æ–ÒŽ(gu¨©)³•ä¸è²å…¥log4j.propertiesä½ç½®çš„傿•ŽÍ¼Œå¯ä»¥è‡ªç”±é…ç½®log4j的酾|®æ–‡ä»¶çš„åå—å’Œå˜æ”¾ä½¾|®ã€‚也å¯è‡ªç”±é…¾|®log4j日志文äšg的相对于当å‰åº”用的èµ\径。详 <br />¾l†ä»£ç 如下: </p>
<p>½E‹åºä»£ç <br />package wbb.bysxxglxt.util; </p>
<p>import org.apache.struts.action.*; <br />import org.apache.commons.logging.LogFactory; <br />import org.apache.commons.logging.Log; <br />import javax.servlet.ServletException; <br />import java.util.Properties; <br />import java.io.InputStream; <br />import org.apache.log4j.PropertyConfigurator; <br />import java.io.FileInputStream; <br />import java.io.IOException; </p>
<p>public class ExtendedActionServlet extends ActionServlet { <br /> private Log log = LogFactory.getLog(this.getClass().getName()); </p>
<p> public ExtendedActionServlet() {} </p>
<p> public void init() throws ServletException { <br /> log.info( <br /> "Initializing, My MyActionServlet init this System's Const Variable"); <br /> String prefix = this.getServletConfig().getServletContext().getRealPath( <br /> "/"); <br /> String file = this.getServletConfig().getInitParameter("log4j"); <br /> String filePath = prefix + file; <br /> Properties props = new Properties(); <br /> System.out.println(prefix); <br /> System.out.println(file); <br /> System.out.println(filePath); </p>
<p> try { <br /> FileInputStream log4jStream = new FileInputStream(filePath); <br /> props.load(log4jStream); <br /> log4jStream.close(); <br /> String logFile = prefix + <br /> props.getProperty("log4j.appender.A1.File"); //讄¡½®è·¯å¾„ </p>
<p> System.out.println(logFile); <br /> props.setProperty("log4j.appender.A1.File", logFile); <br /> PropertyConfigurator.configure(props); //装入log4jé…ç½®ä¿¡æ¯ <br /> } catch (IOException e) { <br /> e.printStackTrace(); <br /> } <br /> log.info("Initializing, end My Init"); <br /> super.init();//应用了struts,æ¤æ–¹æ³•ä¸èƒ½çœåQŒActionServletè¦†ç›–äº†çš„æ¤æ–¹æ³•䏿œ‰å¾ˆå¤šé‡è¦æ“ä½?<br /> } <br />} </p>
<p><br />**********************应用web.xml 关键部分*************************** </p>
<p> <br />½E‹åºä»£ç <br /><servlet> <br /> <servlet-name>action</servlet-name> <br /> <servlet-class>wbb.bysxxglxt.util.ExtendedActionServlet</servlet-class> <br /> <init-param> <br /> <param-name>config</param-name> <br /> <param-value>/WEB-INF/struts-config.xml</param-value> <br /> </init-param> <br /> <init-param> <br /> <param-name>log4j</param-name> <br /> <param-value>properties\log4j.properties</param-value> <br /> </init-param> <br /> <init-param> <br /> <param-name>debug</param-name> <br /> <param-value>0</param-value> <br /> </init-param> <br /> <init-param> <br /> <param-name>application</param-name> <br /> <param-value>ApplicationResources</param-value> <br /> </init-param> <br /> <load-on-startup>0</load-on-startup> <br /> </servlet> <br /> <servlet-mapping> <br /> <servlet-name>action</servlet-name> <br /> <url-pattern>*.do</url-pattern> <br /> </servlet-mapping> </p>
<p><br />注æ„log4j傿•°ä¸ç›¸å¯¹èµ\å¾„çš„æ–œæ ¾U¿çš„写法åQŒè€Œä¸”log4j属性文件如攄¡½®åœ¨web-inf/classes目录或web-inf½{‰ç›®å½•䏿œ€å¥½æ”¹åï¼Œå› äØ“åœ¨åŠ è½½æ¤Servlet之å‰åQŒæœåС噍如tomcatå¯åŠ¨æ—¶ä¼šè‡ªåŠ¨æœçƒ¦web-inf目录和web-inf/classes目录ä¸log4j.propertiesæ–‡äšgåQŒå¦‚æœ‰åˆ™è‡ªåŠ¨åŠ è²ã€‚log4jå±žæ€§æ–‡ä»¶åŠ è½½åŽ,ç”׃ºŽè¯¥å±žæ€§æ–‡ä»¶ä¸log4j.appender.A1.File的值用的是相对路径åQŒè‡ªåŠ¨åŠ è½½é…¾|®ä¾¿ä¼šå‡ºé”™ï¼š <br />log4j:ERROR setFile(null,true) call failed. <br />java.io.FileNotFoundException: WEB-INF\logs\bysxxglxt.log (¾pÈ»Ÿæ‰¾ä¸åˆ°æŒ‡å®šçš„路径ã€? <br />ä¸çŸ¥é“log4jä¸ÞZ»€ä¹ˆä¼š˜q™ä¹ˆæ—©è‡ªåЍå¯åŠ¨ã€‚å°½½Ž¡åŽé¢åŠ è½½æ‰©å±•çš„ActionServlet䏿£¼‹®è®¾¾|®äº†log4jå±žæ€§æ–‡ä»¶åÆˆæ£å¸¸åŠ è²äº†ï¼Œä½†æŠ¥çš„这个错˜q˜æ˜¯æ€ªä¸çˆ½çš„åQŒäºŽæ˜¯åªæœ‰æ›´æ”¹log4j属性文件åå—æˆ–è€…æ›´æ”¹å…¶å˜æ”¾ä½ç½®åQŒè®©å…¶ä¸èƒ½è‡ªåŠ¨åŠ è½½äº†åQŒä¸˜q‡è¿˜æ˜¯æœ‰ä¸¤ä¸ªè¦å‘ŠåQ?<br />log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax). <br />log4j:WARN Please initialize the log4j system properly. <br />˜q™æ ·åšå°±½Ž—是掩耳盗铃了åQŒå¦‚æžœä½ æœ‰æ›´å¥½çš„è§£å†³åŠžæ³•åQŒå¸Œæœ›èƒ½åœ¨æ¤è´´å‡ºæ¥ï¼Œå¤§å®¶ä¸€èµïL ”½I¶ã€?</p>
<p>********************log4j.properties***************************** <br />### 讄¡½®logger¾U§åˆ« ### </p>
<p>½E‹åºä»£ç <br />log4j.rootLogger=DEBUG,stdout,A1 </p>
<p>### appender.stdoutè¾“å‡ºåˆ°æŽ§åˆ¶å° ### <br />log4j.appender.stdout=org.apache.log4j.ConsoleAppender <br />log4j.appender.stdout.Target=System.out <br />log4j.appender.stdout.layout=org.apache.log4j.PatternLayout <br />log4j.appender.stdout.layout.ConversionPattern= [%5p] [BYSXXGLXT] %d{yyyy-MM-dd HH:mm:ss}: %-4r [%-5p] [%t] ( %F,%L ) - %m%n </p>
<p>### appender.A1输出到日志文ä»?### <br />log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender <br />log4j.appender.A1.File=WEB-INF\\logs\\bysxxglxt.log <br />##注æ„ä¸Šé¢æ—¥å¿—æ–‡äšgç›¸å¯¹åº”ç”¨æ ¹ç›®å½•èµ\径的写法 <br />log4j.appender.A1.DatePattern='.'yyyy-MM-dd'.log' <br />log4j.appender.A1.Append=true <br />## 输出DEBUG¾U§åˆ«ä»¥ä¸Šçš„æ—¥å¿?<br />log4j.appender.A1.Threshold=DEBUG <br />log4j.appender.A1.layout=org.apache.log4j.PatternLayout <br />log4j.appender.A1.layout.ConversionPattern= [%5p] [BYSXXGLXT] %d{yyyy-MM-dd HH:mm:ss}: %-4r [%t] ( %F,%L ) - %m%n <br /></p><img src ="http://www.aygfsteel.com/hyljava/aggbug/379380.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hyljava/" target="_blank">何云éš?/a> 2012-05-28 19:06 <a href="http://www.aygfsteel.com/hyljava/archive/2012/05/28/379380.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>log4j的简å•é…¾|?/title><link>http://www.aygfsteel.com/hyljava/archive/2012/05/28/379378.html</link><dc:creator>何云éš?/dc:creator><author>何云éš?/author><pubDate>Mon, 28 May 2012 11:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/hyljava/archive/2012/05/28/379378.html</guid><wfw:comment>http://www.aygfsteel.com/hyljava/comments/379378.html</wfw:comment><comments>http://www.aygfsteel.com/hyljava/archive/2012/05/28/379378.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/hyljava/comments/commentRss/379378.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/hyljava/services/trackbacks/379378.html</trackback:ping><description><![CDATA[<p> 首先导入两个åŒ? commons-logging.jar log4j-1.2.12.jar</p>
<p> 在src下编å†?ä¸?propertiesæ–‡äšg</p>
<p>1.log4j.properties 䏋颿˜¯å†…å®?/p>
<p><br />##LOGGERS</p>
<p>#define a logger<br />log4j.rootLogger=INFO,console,file</p>
<p>##APPENDERS<br />#define an appender named console<br />log4j.appender.console=org.apache.log4j.ConsoleAppender<br />#define an appender named file<br />log4j.appender.file=org.apache.log4j.RollingFileAppender<br />log4j.appender.file.File=d:/demo_log.txt<br />#set the log's size<br />log4j.appender.file.MaxFileSize=1000KB<br />log4j.appender.file.MaxBackupIndex=20</p>
<p>##LAYOUTS<br />#assign a SimpleLayout to console appender<br />log4j.appender.console.layout=org.apache.log4j.SimpleLayout<br />#assign a PatternLayout to file appender<br />log4j.appender.file.layout=org.apache.log4j.PatternLayout<br />log4j.appender.file.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss}]%m%n</p>
<p> </p>
<p>2.<br /> simplelog.properties䏋颿˜¯å†…å®?/p>
<p><br />log.apache.commons.logging.simplelog.defaultlog=info</p>
<p>3.<br /> commons-logging.properties䏋颿˜¯å†…å®?/p>
<p>##set Log as Log4J<br />org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger</p>
<p> </p>
<p> </p><img src ="http://www.aygfsteel.com/hyljava/aggbug/379378.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hyljava/" target="_blank">何云éš?/a> 2012-05-28 19:04 <a href="http://www.aygfsteel.com/hyljava/archive/2012/05/28/379378.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item></channel></rss> <footer>
<div class="friendship-link">
<a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a>
</div>
</footer>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º
<a href="http://" target="_blank">»ôÇñÏØ</a>|
<a href="http://" target="_blank">²ßÀÕÏØ</a>|
<a href="http://" target="_blank">¼ªÂ¡ÏØ</a>|
<a href="http://" target="_blank">°¢¿ËÌÕÏØ</a>|
<a href="http://" target="_blank">»ÔÄÏÏØ</a>|
<a href="http://" target="_blank">ÁÙÒÊÊÐ</a>|
<a href="http://" target="_blank">ÒÁ´¨ÏØ</a>|
<a href="http://" target="_blank">ÎÞé¦ÏØ</a>|
<a href="http://" target="_blank">±£µÂÏØ</a>|
<a href="http://" target="_blank">ÍпËÍÐÏØ</a>|
<a href="http://" target="_blank">¶¨Î÷ÊÐ</a>|
<a href="http://" target="_blank">ÔªÑôÏØ</a>|
<a href="http://" target="_blank">ÏÉÓÎÏØ</a>|
<a href="http://" target="_blank">´ó»¯</a>|
<a href="http://" target="_blank">캵ÂÏØ</a>|
<a href="http://" target="_blank">ÁÖÎ÷ÏØ</a>|
<a href="http://" target="_blank">¹ã²ýÏØ</a>|
<a href="http://" target="_blank">½ð²ýÊÐ</a>|
<a href="http://" target="_blank">°²ÐÂÏØ</a>|
<a href="http://" target="_blank">½¨ÑôÊÐ</a>|
<a href="http://" target="_blank">å§ÑôÊÐ</a>|
<a href="http://" target="_blank">´¾»¯ÏØ</a>|
<a href="http://" target="_blank">¼ÎÒåÊÐ</a>|
<a href="http://" target="_blank">ÕýÀ¶Æì</a>|
<a href="http://" target="_blank">¼ÎÒñÏØ</a>|
<a href="http://" target="_blank">ÔÀÑôÊÐ</a>|
<a href="http://" target="_blank">ºØÖÝÊÐ</a>|
<a href="http://" target="_blank">»ÆÆÖÇø</a>|
<a href="http://" target="_blank">¿Ëʲ¿ËÌÚÆì</a>|
<a href="http://" target="_blank">Ï¢·éÏØ</a>|
<a href="http://" target="_blank">°²ÁúÏØ</a>|
<a href="http://" target="_blank">ÁéÉ½ÏØ</a>|
<a href="http://" target="_blank">ÔæÑôÊÐ</a>|
<a href="http://" target="_blank">ÓàÒ¦ÊÐ</a>|
<a href="http://" target="_blank">ÅÍʯÊÐ</a>|
<a href="http://" target="_blank">ÃñÇÚÏØ</a>|
<a href="http://" target="_blank">°²ÑôÏØ</a>|
<a href="http://" target="_blank">ËçÀâÏØ</a>|
<a href="http://" target="_blank">Öз½ÏØ</a>|
<a href="http://" target="_blank">ÎýÁÖ¹ùÀÕÃË</a>|
<a href="http://" target="_blank">ɯ³µÏØ</a>|
<script>
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
</body>