<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      springboot~Money類型在序列化時遇到的問題與解決

      在java擴展包里,有這樣一個包,它可以描述貨幣類型,它說幣種和金額組成,可以應用在任何復雜的場合里,這個對象結構如下:

      {
          "price": {
              "amount": 1799.99,
              "currency": "USD"
          }
      }

      如果希望引用Money類型包,可以使用下面的包路徑

      org.javamoney:moneta:1.1

      對包進行更新,然后在代碼中可以使用Money類型

      @Builder
      @Getter
      @ToString
      @NoArgsConstructor
      @AllArgsConstructor
      public class UserInfo {
        private String name;
        private String email;
        @ValidateMoney(value = 1, message = "年紀最小為1歲.")
        private Money price;
      
       }

      在進行單元測試時,我們把這個對象作為請求體,在webapi里進行接收,這時出現了一個money序列化的問題,如下異常

      com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `org.javamoney.moneta.Money`

      主要原因是,你的money對象沒有找到序列化的組成,我們需要安裝一個第三方的組成,來幫我們實現序列化的工作,build.gradle里添加包引用

      compile('org.zalando:jackson-datatype-money:1.0.0-RC2')

      然后添加Jackson的配置文件,你可以在代碼根目錄去添加它

      依賴包代碼:

      dependencies {
          compile(
                  'org.springframework.boot:spring-boot-starter-web',
                  'org.zalando:jackson-datatype-money:1.0.0-RC2',
                  'org.javamoney:moneta:1.1'
          )
      
          testCompile(
                  'org.springframework.boot:spring-boot-starter-test',
                  'org.springframework.boot:spring-boot-starter-webflux',
                  'org.projectlombok:lombok',
                  'org.javamoney:moneta:1.1'
          )
      
          compileOnly(
                  'org.projectlombok:lombok',
                  'org.springframework.boot:spring-boot-configuration-processor'
          )
      }

      程序代碼:

      @Configuration
      class JacksonConfig {
        @Bean
        public MoneyModule moneyModule() {
          return new MoneyModule().withMonetaryAmount(Money::of);
        }
      }

      下面說幾個全局性的注解:

      bean(即Java bean)就是Java的類,或者說,就是Java語言的組件,充分體現了Java語言平臺獨立和面向對象編程的優勢。JavaBeans是一代網絡程序員的資源。它是Java語言的組件:bean的接口和通訊部分的標準,實現了bean的復用。

      @Configuration標注在類上,相當于把該類作為spring的xml配置文件中的<beans>,作用為:配置spring容器(應用上下文)

      @Bean標注在方法上(返回某個實例的方法),等價于spring的xml配置文件中的<bean>,作用為:注冊bean對象

      下面使用@Bean注解需要注意的幾點說明:

      1. @Bean注解在返回實例的方法上,如果未通過@Bean指定bean的名稱,則默認與標注的方法名相同; 
      2. @Bean注解默認作用域為單例singleton作用域,可通過@Scope(“prototype”)設置為原型作用域; 
      3. 既然@Bean的作用是注冊bean對象,那么完全可以使用@Component、@Controller、@Service、@Ripository等注解注冊bean,當然需要配置@ComponentScan注解進行自動掃描。

       


      本文@Configuration和@Bean注解的參考來自:https://blog.csdn.net/javaloveiphone/article/details/52182899

      感謝各位的閱讀!

      posted @ 2018-05-10 18:47  張占嶺  閱讀(1535)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品爽爽爽一区二区| 国产精品欧美一区二区三区不卡| 亚洲第一视频区| 伊人中文在线最新版天堂| 久久综合色一综合色88| 亚洲一区二区三午夜福利| 亚洲国产一区二区三区| 亚洲人妻一区二区精品| 麻豆成人久久精品二区三| 亚洲精品tv久久久久久久| 国产精品亚洲一区二区z| 丝袜人妖av在线一区二区| 青青草原国产精品啪啪视频| 日韩精品无码不卡无码| 亚洲av色夜色精品一区| 黑森林福利视频导航| 亚洲精品色哟哟一区二区| 中文字幕在线精品国产| 成人亚欧欧美激情在线观看 | 久久国产一区二区三区| 内射无套内射国产精品视频| av色国产色拍| 亚洲最大日韩精品一区| 欧美成人h亚洲综合在线观看| 国产精品亚洲一区二区三区| 国产av熟女一区二区三区| 男人的天堂av一二三区| 日韩老熟女av搜索结果| 亚洲中文字幕国产综合| 国产成人高清精品亚洲| 女人与牲口性恔配视频免费| 一个人在看www免费| 香蕉久久久久久av成人| 99热在线观看| 99国产精品自在自在久久| 免费a级黄毛片| 亚洲人妻系列中文字幕| 久热视频这里只有精品6| 国产91特黄特色A级毛片| 毛片亚洲AV无码精品国产午夜| 国产果冻豆传媒麻婆|