91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring中的類型轉換器怎么定義使用

發布時間:2022-12-28 09:17:41 來源:億速云 閱讀:112 作者:iii 欄目:開發技術

這篇文章主要講解了“Spring中的類型轉換器怎么定義使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Spring中的類型轉換器怎么定義使用”吧!

    1.類型轉換器作用

    類型的轉換賦值

    2.自定義類型轉換器

    把string字符串轉換成user對象

    /**
     * @program ZJYSpringBoot1
     * @description: 把string字符串轉換成user對象
     * @author: zjy
     * @create: 2022/12/27 05:38
     */
    public class StringToUserPropertyEditor extends PropertyEditorSupport implements PropertyEditor {
        
        @Override
        public void setAsText(String text) throws java.lang.IllegalArgumentException{
            User user = new User();
            user.setName(text);
            this.setValue(user);
        }
    }
    public static void main(String[] args) {
    
        StringToUserPropertyEditor propertyEditor = new StringToUserPropertyEditor();
        propertyEditor.setAsText("aaaaa");
        User user = (User) propertyEditor.getValue();
        System.out.println(user.getName());
    
    }

    打印結果:

    Spring中的類型轉換器怎么定義使用

    2.1.在spring中怎么用呢?

    2.1.1 用法

    我現在希望@Value中的值可以賦值到User的name上

    @Component
    public class UserService  {
    
        @Value("zjy")
        private User user;
    
    public void test(){
        System.out.println(user.getName());
    }
    
    }

    還用2中的自定義類型轉換器 StringToUserPropertyEditor,spring啟動后,StringToUserPropertyEditor會被注冊到容器中。

    public static void main(String[] args) {
    
            AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
    
            UserService userService = (UserService) context.getBean(
                   "userService");
            userService.test();
    
        }

    打印結果:

    Spring中的類型轉換器怎么定義使用

    2.1.2 解析

    Spring中的類型轉換器怎么定義使用

    當spring運行到這行代碼的時候會判斷:自己有沒有轉換器可以把@value中的值轉換成User?沒有的話會去找用戶有沒有自定義轉換器,在容器中可以找到自定義的轉換器后,用自定義的轉換器進行轉換。

    3.ConditionalGenericConverter

    ConditionalGenericConverter 類型轉換器,會更強大一些,可以判斷類的類型

    public class StringToUserConverter implements ConditionalGenericConverter {
    
        public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
            return sourceType.getType().equals(String.class) && targetType.getType().equals(User.class);
        }
    
        public Set<ConvertiblePair> getConvertibleTypes() {
            return Collections.singleton(new ConvertiblePair(String.class,User.class));
        }
    
        public Object convert(Object source,TypeDescriptor sourceType, TypeDescriptor targetType) {
            User user = new User();
            user.setName((String) source);
    
            return user;
        }
    }

    調用:

    public static void main(String[] args) {
    
        DefaultConversionService conversionService = new DefaultConversionService();
        conversionService.addConverter(new StringToUserConverter());
        User user = conversionService.convert("zjyyyyy",User.class);
        System.out.println(user.getName());
        
    }

    打印結果:

    Spring中的類型轉換器怎么定義使用

    感謝各位的閱讀,以上就是“Spring中的類型轉換器怎么定義使用”的內容了,經過本文的學習后,相信大家對Spring中的類型轉換器怎么定義使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    昌图县| 陆河县| 轮台县| 辰溪县| 旬邑县| 上杭县| 监利县| 苍溪县| 南郑县| 陇川县| 曲松县| 天柱县| 云浮市| 龙川县| 周宁县| 台北县| 韩城市| 东阿县| 伊宁县| 乐安县| 万宁市| 贵定县| 德格县| 隆尧县| 瑞金市| 鲁甸县| 彝良县| 延边| 建阳市| 富民县| 平罗县| 上杭县| 监利县| 湖南省| 余干县| 涟源市| 梁山县| 五原县| 迁西县| 鄯善县| 射洪县|