日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Spring MVC 4快速入门Maven原型得到了改进–更多Java 8功能

發(fā)布時間:2023/12/3 java 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring MVC 4快速入门Maven原型得到了改进–更多Java 8功能 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

對于所有有興趣在沒有Spring Boot的情況下快速引導(dǎo)Spring 4應(yīng)用程序的開發(fā)人員,請檢查剛剛更新的我的Spring MVC 4 Quickstart Maven原型。 原型已經(jīng)將Java 8用作目標(biāo)平臺已有一段時間了,但是不支持特定的Java 8功能。 最近的更改帶來了Thymeleaf,Jackson和JPA對Java 8 Data&Time API的支持(除了一些錯誤修復(fù))。

Thymeleaf JSR 310(Java 8日期和時間)支持

如果您碰巧使用Spring MVC和Thymeleaf,并且需要在視圖中格式化Java 8 Date&Time對象,則現(xiàn)在可以使用thymeleaf-extras-java8time –用于Java 8 Date&Time API的Thymeleaf模塊。

修改了POM并添加了新的依賴項:

<dependency><groupId>org.thymeleaf.extras</groupId><artifactId>thymeleaf-extras-java8time</artifactId><version>2.1.0.RELEASE</version> </dependency>

此外, Java8TimeDialect已添加到TemplateEngine :

@Bean public SpringTemplateEngine templateEngine() {SpringTemplateEngine templateEngine = new SpringTemplateEngine();templateEngine.setTemplateResolver(templateResolver());templateEngine.addDialect(new SpringSecurityDialect());templateEngine.addDialect(new Java8TimeDialect());return templateEngine; }

Java8TimeDialect是,在表達(dá)式求值期間將temporals對象作為實用程序?qū)ο筇砑拥缴舷挛摹?這意味著它可以在OGNL或SpringEL表達(dá)式評估中使用:

<div th:fragment="footer" th:align="center">? <span th:text="${#temporals.format(#temporals.createNow(), 'yyyy')}">2016</span>,<span th:text="${@environment.getProperty('app.version')}"></span> </div>

Jackson JSR 310(Java 8日期和時間)支持

為了能夠使用Jackson序列化或反序列化java.time類型,必須使用外部數(shù)據(jù)類型模塊。 該模塊是jackson-datatype-jsr310 。

修改了POM并添加了新的依賴項:

<dependency><groupId>com.fasterxml.jackson.datatype</groupId><artifactId>jackson-datatype-jsr310</artifactId> </dependency>

我們不需要提供版本,因為項目中使用了Spring IO平臺。 而且,如果您不知道,Spring IO Platform的主要優(yōu)勢在于它通過提供Spring項目的版本以及經(jīng)過測試并已知可以一起工作的依賴項,簡化了依賴項管理。

目前不需要其他配置,因為該模塊將由Spring自動注冊。 這是通過org.springframework.http.converter.json.Jackson2ObjectMapperBuilder完成的。

一個例子?

{"id": 2,"email": "admin","role": "ROLE_ADMIN","created": 1454017095.878 }

其中created是Instant ,序列化為小數(shù)(默認(rèn))。

  • 在此處了解有關(guān)此模塊的更多信息: https : //github.com/FasterXML/jackson-datatype-jsr310

JPA JSR 310(Java 8日期和時間)支持

JPA 2.1不支持將java.time類型映射為SQL有效日期或時間戳類型。 值得一提的是,它帶來了一個新的AttributeConverter接口,并且“可以使用實現(xiàn)該接口的類將實體屬性狀態(tài)轉(zhuǎn)換為數(shù)據(jù)庫列表示形式,然后再轉(zhuǎn)換回來。” 。

此類轉(zhuǎn)換器是Spring Data JPA項目的一部分,并且在Jsr310JpaConverters類中可用。 此類將新的java.time類型轉(zhuǎn)換為舊的Date類型。

通過使org.springframework.data.jpa.convert.threeten包由LocalContainerEntityManagerFactoryBean進(jìn)行掃描,可以激活轉(zhuǎn)換器:

@Bean public LocalContainerEntityManagerFactoryBean emf(DataSource dataSource) {[...]String entities = ClassUtils.getPackageName(Application.class);String converters = ClassUtils.getPackageName(Jsr310JpaConverters.class);entityManagerFactoryBean.setPackagesToScan(entities, converters); [...]return entityManagerFactoryBean; }

如果使用的是PostgreSQL,則java.time.Instant類型現(xiàn)在將以TIMESTAMP形式存儲在PostgreSQL中,而不是BYTEA (因為沒有轉(zhuǎn)換器)。

在此處了解更多有關(guān)JPA 2.1和JSR 310的支持: http : //www.thoughts-on-java.org/persist-localdate-localdatetime-jpa/

在哪里找到它?

  • 在GitHub上找到更新原型: https : //github.com/kolorobot/spring-mvc-quickstart-archetype

我很期待聽到可以做些什么來使其成為一個更好的項目。 如果您有想法或建議,請發(fā)表評論或提出問題。

翻譯自: https://www.javacodegeeks.com/2016/02/spring-mvc-4-quickstart-maven-archetype-improved-java-8-features.html

總結(jié)

以上是生活随笔為你收集整理的Spring MVC 4快速入门Maven原型得到了改进–更多Java 8功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。