| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
22 | 23 | 24 | 25 | 26 | 27 | 28 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 | |||
8 | 9 | 10 | 11 | 12 | 13 | 14 | |||
15 | 16 | 17 | 18 | 19 | 20 | 21 | |||
22 | 23 | 24 | 25 | 26 | 27 | 28 | |||
29 | 30 | 31 | 1 | 2 | 3 | 4 |
在Spring MVC中的配置中一般會(huì)遇到這兩個(gè)標(biāo)簽,作為<context:component-scan>的子標(biāo)簽出現(xiàn)。
但在使用時(shí)要注意一下幾點(diǎn):
1.在很多配置中一般都會(huì)吧Spring-common.xml和Spring-MVC.xml進(jìn)行分開配置,這種配置就行各施其職一樣,顯得特別清晰。
在Spring-MVC.xml中只對(duì)@Controller進(jìn)行掃描就可,作為一個(gè)控制器,其他的事情不做。
在Spring-common.xml中只對(duì)一些事務(wù)邏輯的注解掃描。
2.現(xiàn)在給定一個(gè)項(xiàng)目包的機(jī)構(gòu):
com.fq.controlller
com.fq.service
就先給定這兩個(gè)包機(jī)構(gòu)
(1)在Spring-MVC.xml中有以下配置:
<!-- 掃描@Controller注解 --> <context:component-scan base-package="com.fq.controller"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan>
可以看出要把最終的包寫上,而不能這樣寫base-package=”com.fq”。這種寫法對(duì)于include-filter來(lái)講它都會(huì)掃描,而不是僅僅掃描@Controller。哈哈哈,這點(diǎn)需要注意。他一般會(huì)導(dǎo)致一個(gè)常見(jiàn)的錯(cuò)誤,那就是事務(wù)不起作用,補(bǔ)救的方法是添加use-default-filters=”false”。
(2)在Spring-common.xml中有如下配置:
<!-- 配置掃描注解,不掃描@Controller注解 --> <context:component-scan base-package="com.fq"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan>
可以看到,他是要掃描com.fq包下的所有子類,不包含@Controller。對(duì)于exculude-filter不存在包不精確后都進(jìn)行掃描的問(wèn)題。
在Eclipse中創(chuàng)建Maven的Web項(xiàng)目時(shí)出現(xiàn)錯(cuò)誤:An internal error occurred during: “Retrieving archetypes:”. Java heap space,可以通過(guò)以下步驟來(lái)解決問(wèn)題。
1. 找到Eclipse的根目錄下的eclipse.ini(或myeclipse.ini)文件并打開
2.修改文件中的以下配置
-Dosgi.requiredJavaVersion=1.5(可選)
-Xms512m
-Xmx1024m
這是我的配置,大家可以嘗試著修改下,不同的機(jī)器配置可能支持的情況不同。
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。
/**
* @Project : ${project_name}
* @Title : ${file_name}
* @Package ${package_name}
* @Description : ${todo}
* @author shenyanghong ahong2011@gmail.com
* @date ${date} ${time}
* @Copyright : ${year} www.1000chi.com Inc. All rights reserved.
* @version V1.0
*/
/**
* @ClassName ${type_name}
* @Description ${todo}
* @author shenyanghong ahong2011@gmail.com
* @date ${date}
* ${tags}
*/
/**
* @Fields ${field} : ${todo}
*/
/**
* <p>Title: </p>
* <p>Description: </p>
* ${tags}
*/
/**
* @Title: ${enclosing_method}
* @Description: ${todo}
* @param ${tags} 設(shè)定文件
* @return ${return_type} 返回類型
* @throws
*/
/* ( 非 Javadoc)
* <p>Title: ${enclosing_method}</p>
* <p>Description: </p>
* ${tags}
* ${see_to_overridden}
*/
/**
* ${tags}
* ${see_to_target}
*/
/**
* @return ${bare_field_name}
*/
/**
* @param ${param} 要設(shè)置的 ${bare_field_name}
*/
今天將寫好的附件服務(wù)器的API發(fā)給同事
她引入我的jar后, 編譯就會(huì)報(bào)錯(cuò): 類文件具有錯(cuò)誤的版本 50.0,應(yīng)為 49.0
50.0 對(duì)應(yīng)的是JDK的1.6版本, 而49.0 對(duì)應(yīng)的是JDK的1.5版本
也就是說(shuō)我的jar的版本高于她所用的版本
由于我們實(shí)際部署在1.5之上, 所以我就來(lái)修改我的編譯環(huán)境
首先我先修改了Eclipse的編譯環(huán)境到1.5, 但是沒(méi)有效果
轉(zhuǎn)眼一想, 我都是使用Ant來(lái)打包發(fā)布, 看來(lái)Ant是自己編譯的
于是我就在網(wǎng)上找到了修改Ant編譯版本的方法
最后完成了修改
寫個(gè)文字記錄下, 免得以后忘了= =
PS: 我發(fā)現(xiàn)很多人問(wèn)如何查看class文件是什么版本JDK編譯的, 現(xiàn)在我將方法寫在下面:
使用UtralEdit打開一個(gè)class文件.
根據(jù)java虛擬機(jī)的規(guī)范, java的class文件的前4個(gè)字節(jié)為magic number(魔數(shù)), 0xCAFEBABE(下圖的第一行0 - 3列), 標(biāo)識(shí)這個(gè)文件是java的class文件
而緊隨其后的4個(gè)字節(jié), 存儲(chǔ)的就是該class文件的主次版本號(hào)(下圖的第一行的 4 - 7 列), 下圖中的31 換算成十進(jìn)制就是49, 這標(biāo)識(shí)此class文件為JDK1.5編譯所得, 若32 就是JDK1.6編譯