spring使用@Value注解讀取.properties文件時出現中文亂碼問題的解決


解決辦法

在spring中我們常常使用.properties對一些屬性進行一個提前配置, spring 在讀取*.properties文件時,

默認使用的是asci碼, 這時 我們需要對其編碼進行轉換. 下面列舉兩種常見的方法。

方法一:在配置spring.xml文件時,聲明所需的∗.properties文件時直接使用"utf−8"編碼

<context:property-placeholder location="classpath:conf/*.properties" file-encoding="UTF-8"/>
方法二:如果在所需類上注入可使用以下方式來聲明編碼格式:
@Component
@PropertySource(value = "classpath:conf/copyWriteUI.properties",encoding = "utf-8")
@Getter
public class CopyWriteUI {
    @Value("${a}")
    private String a;
    @Value("${b}")
    private String b;
    }

附錄 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="順序"  
        /> 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM