spring使用@Value標籤讀取*.properties文件的中文亂碼問題的解決
spring
中文亂碼
@Value
*.properties
在spring中我們常常使用.properties對一些屬性進行一個提前配置, spring 在讀取*.properties文件時,默認使用的是asci碼, 這時 我們需要對其編碼進行轉換. 當然 方法有很多種 ,我說以下幾種
1.
在配置spring.xml文件時,聲明所需的∗.properties文件時直接使用"utf−8"編碼
<context:property-placeholder location="classpath:conf/*.properties" file-encoding="UTF-8"/>
2.
如果在所需類上注入可使用以下方式來聲明編碼格式:
@Component
@PropertySource(value = "classpath:conf/copyWriteUI.properties",encoding = "utf-8")
@Getter
public class CopyWriteUI {
@Value("${a}")
private String a;
@Value("${b}")
private String b;
}
3.
不設置編碼格式,編寫文件時將中文轉化爲unicode編碼
4.如果你用的是IntelliJIDEA那麼按如下圖操作以上步揍都可以省去啦!!!idea會自動幫我們進行如上的第三步,解放了我們的雙手!
附錄 spring <context:property-placeholder/>
的屬性說明
<context:property-placeholder
location="屬性文件,多個之間逗號分隔"
file-encoding="文件編碼"
ignore-resource-not-found="是否忽略找不到的屬性文件"
ignore-unresolvable="是否忽略解析不到的屬性,如果不忽略,找不到將拋出異常"
properties-ref="本地Properties配置"
local-override="是否本地覆蓋模式,即如果true,那麼properties-ref的屬性將覆蓋location加載的屬性,否則相反"
system-properties-mode="系統屬性模式,默認ENVIRONMENT(表示先找ENVIRONMENT,再找properties-ref/location的),NEVER:表示永遠不用ENVIRONMENT的,OVERRIDE類似於ENVIRONMENT"
order="順序"
/>