Spring 5高級編程(第5版) ( 簡體 字) |
作者:[美]尤莉安娜 ? 科斯米納(Iuliana Cosmina) 、羅布 ? 哈羅(Rob Harrop)、克里斯 ? 舍弗(Chris Schaefer)、克拉倫斯 ? | 類別:1. -> 程式設計 -> JAVA -> Spring |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 50493 詢問書籍請說出此書號!【缺書】 NT售價: 640 元 |
出版日:1/1/2019 |
頁數:430 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302516446 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》涵蓋Spring 5的所有內容,如果想要充分利用這一領先的企業級Java應用程序開發框架的強大功能,《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》是最全面的Spring參考和實用指南。 《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》第5版涵蓋核心的Spring及其與其他領先的Java技術(比如Hibernate、JPA 2、Tiles、Thymeleaf和WebSocket)的集成。《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》的重點是介紹如何使用Java配置類、lambda表達式、Spring Boot以及反應式編程。同時,將與企業級應用程序開發人員分享一些見解和實際經驗,包括遠程處理、事務、Web和表示層,等等。 通過《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》,你可以學習如何完成以下事情: 使用控制反轉(IoC)和依賴注入(DI)。 了解Spring 5中的新功能。 使用Spring MVC和WebSocket構建基于Spring的Web應用程序。 使用Spring WebFlux構建Spring Web反應式應用程序。 使用JUnit 5測試Spring應用程序。 使用新的Java 8 lambda語法。 使用Spring Boot達到更高的水平,以獲取任何類型的Spring應用程序并立即運行。 在Spring應用程序中使用Java 9的新功能。 由于Java 9的發布日期不斷推遲,因此Spring 5是基于Java 8發布的。書中介紹的與Java 9的互操作性都是基于早期的可訪問版本完成的。 有一個與《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》相關的多模塊項目,使用Gradle 4進行配置。該項目位于Apress的官方存儲庫中,參見https://github.com/Apress/pro-spring-5。只要在本機上安裝了Gradle,根據README.adoc文件中的說明即可在克隆后立即構建該項目。如果尚未安裝Gradle,那么可以使用IntelliJ IDEA下載并使用Gradle Wrapper來構建自己的項目(https://docs.gradle.org/current/userguide/gradle_wrapper.html)。《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》末尾的附錄A介紹了項目結構、配置以及可用于開發和運行《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》代碼示例的開發工具的其他詳細信息,這些工具可在GitHub上找到。 在編寫《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》的過程中,Spring 5新的候選版本發布了,還發布了新版本的IntelliJ IDEA,同時書中使用的Gradle以及其他技術的版本也更新了。因此,我們及時升級到新版本,以便提供最新信息,并使《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》與官方文檔保持同步。多位專家已經對《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》的技術準確性進行了審查,但是如果發現任何不一致的地方,請發送電子郵件至editorial@apress.com并創建勘誤項。 可以通過www.apress.com/9781484228074網頁上的Download Source Code按鈕訪問《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》的示例源代碼。我們將對這些代碼進行及時維護,以便與新技術保持同步,同時根據開發人員在學習Spring的過程中提出的建議不斷進行豐富。 真心希望你喜歡用《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》來學習Spring,就像我們喜歡編寫《Spring 5高級編程(第5版) 深度解析Spring框架及其工具》一樣。 |
內容簡介:《Spring 5高級編程(第5版)》涵蓋核心的Spring 及其與其他領先的Java 技術(比如Hibernate、JPA 2、Tiles、Thymeleaf 和WebSocket)的集成。重點介紹如何使用Java 配置類、lambda 表達式、Spring Boot 以及反應式編程。同時,將與企業級應用程序開發人員分享一些見解和實際經驗,包括遠程處理、事務、Web 和表示層,等等。 通過《Spring 5高級編程(第5版)》,你可以學習如何完成以下事情: ● 使用控制反轉(IoC)和依賴注入(DI)。 ● 了解Spring 5 中的新功能。 ● 使用Spring MVC 和WebSocket 構建基于Spring 的Web 應用程序。 ● 使用Spring WebFlux 構建Spring Web 反應式應用程序。 ● 使用JUnit 5 測試Spring 應用程序。 ● 使用新的Java 8 lambda 語法。 ● 使用Spring Boot 達到更高的水平,以獲取任何類型的Spring 應用程序并立即運行。 ● 在Spring 應用程序中使用Java 9 的新功能 |
目錄:第1章Spring介紹 1 1.1什么是Spring 1 1.1.1Spring框架的演變 1 1.1.2翻轉控制或依賴注入 5 1.1.3依賴注入的演變 6 1.1.4除了依賴注入 7 1.2Spring項目 10 1.2.1Spring的起源 10 1.2.2Spring社區 10 1.2.3Spring工具套件 11 1.2.4SpringSecurity項目 11 1.2.5SpringBoot 11 1.2.6Spring批處理和集成 11 1.2.7許多其他項目 11 1.3Spring的替代品 12 1.3.1JBossSeam框架 12 1.3.2GoogleGuice 12 1.3.3PicoContainer 12 1.3.4JEE7容器 12 1.4小結 12 第2章入門 13 2.1獲取Spring框架 13 2.1.1快速入門 13 2.1.2在GitHub中查找Spring 14 2.1.3使用正確的JDK 14 2.2了解Spring打包 14 2.2.1為自己的應用程序選擇模塊 15 2.2.2在Maven存儲庫上訪問Spring模塊 15 2.2.3使用Gradle訪問Spring模塊 16 2.2.4使用Spring文檔 17 2.2.5將Spring放入HelloWorld中 17 2.2.6構建示例HelloWorld應用程序 17 2.2.7用Spring重構 20 2.3小結 22 第3章在Spring中引入IoC和DI 23 3.1控制反轉和依賴注入 23 3.2控制反轉的類型 23 3.2.1依賴拉取 24 3.2.2上下文依賴查找 24 3.2.3構造函數依賴注入 25 3.2.4setter依賴注入 25 3.2.5注入與查找 25 3.2.6setter注入與構造函數注入 26 3.3Spring中的控制反轉 28 3.4Spring中的依賴注入 28 3.4.1bean和BeanFactory 28 3.4.2BeanFactory實現 29 3.4.3ApplicationContext 30 3.5配置ApplicationContext 30 3.5.1設置Spring配置選項 30 3.5.2基本配置概述 30 3.5.3聲明Spring組件 31 3.5.4使用方法注入 53 3.5.5了解bean命名 60 3.5.6了解bean實例化模式 66 3.6解析依賴項 69 3.7自動裝配bean 71 3.8設置bean繼承 77 3.9小結 79 第4章詳述Spring配置和SpringBoot 80 4.1Spring對應用程序可移植性的影響 80 4.2管理bean生命周期 81 4.3掛鉤到bean的創建 82 4.3.1在創建bean時執行方法 82 4.3.2實現InitializingBean接口 84 4.3.3使用JSR-250@PostConstruct注解 86 4.4使用@Bean聲明一個初始化方法 88 4.5掛鉤到bean的銷毀 89 4.5.1在bean被銷毀時執行一個方法 89 4.5.2實現DisposableBean接口 91 4.5.3使用JSR-250@PreDestroy注解 92 4.6使用@Bean聲明銷毀方法 93 4.7了解解析的順序 94 4.8讓Spring感知bean 94 4.8.1使用BeanNameAware接口 95 4.8.2使用ApplicationContextAware接口 96 4.9使用FactoryBean 97 4.10直接訪問FactoryBean 100 4.11使用factory-bean和factory-method屬性 101 4.12JavaBeanPropertyEditor 102 4.12.1使用內置的PropertyEditor 102 4.12.2創建自定義PropertyEditor 106 4.13更多的SpringApplicationContext配置 108 4.13.1使用MessageSource進行國際化 108 4.13.2在獨立的應用程序中使用 MessageSource 110 4.13.3應用程序事件 111 4.14訪問資源 112 4.15使用Java類進行配置 113 4.15.1Java中的ApplicationContext配置 113 4.15.2Spring混合配置 119 4.15.3Java或XML配置? 121 4.16配置文件 121 4.17使用Java配置來配置Spring配置文件 123 4.18Environment和PropertySource抽象 125 4.19使用JSR-330注解進行配置 128 4.20使用Groovy進行配置 130 4.21SpringBoot 132 4.22小結 135 第5章SpringAOP 136 5.1AOP概念 137 5.2AOP的類型 137 5.2.1使用靜態AOP 137 5.2.2使用動態AOP 137 5.2.3選擇AOP類型 138 5.3Spring中的AOP 138 5.3.1AOPAlliance 138 5.3.2AOP中的HelloWorld示例 138 5.4SpringAOP架構 139 5.4.1Spring中的連接點 139 5.4.2Spring中的切面 140 5.4.3關于ProxyFactory類 140 5.4.4在Spring中創建通知 140 5.4.5通知的接口 141 5.4.6創建前置通知 141 5.4.7通過使用前置通知保護方法訪問 142 5.4.8創建后置返回通知 145 5.4.9創建環繞通知 147 5.4.10創建異常通知 148 5.4.11選擇通知類型 150 5.5在Spring中使用顧問和切入點 150 5.5.1Pointcut接口 151 5.5.2可用的切入點實現 152 5.5.3使用DefaultPointcutAdvisor 152 5.5.4使用StaticMethodMatcherPointcut創建靜態切入點 153 5.5.5使用DyanmicMethodMatcherPointcut創建動態切入點 155 5.5.6使用簡單名稱匹配 157 5.5.7用正則表達式創建切入點 158 5.5.8使用AspectJ切入點表達式創建切入點 159 5.5.9創建注解匹配切入點 160 5.5.10便捷的Advisor實現 161 5.6了解代理 161 5.6.1使用JDK動態代理 162 5.6.2使用CGLIB代理 162 5.6.3比較代理性能 163 5.6.4選擇要使用的代理 165 5.7切入點的高級使用 166 5.7.1使用控制流切入點 166 5.7.2使用組合切入點 168 5.7.3組合和切入點接口 170 5.7.4切入點小結 170 5.8引入入門 170 5.8.1引入的基礎知識 171 5.8.2使用引入進行對象修改檢測 172 5.8.3引入小結 175 5.9AOP的框架服務 175 5.9.1以聲明的方式配置AOP 175 5.9.2使用ProxyFactoryBean 176 5.9.3使用aop名稱空間 180 5.10使用@AspectJ樣式注解 184 5.11AspectJ集成 189 5.11.1關于AspectJ 189 5.11.2使用單例切面 189 5.12小結 191 第6章SpringJDBC支持 192 6.1介紹Lambda表達式 192 6.2示例代碼的示例數據模型 193 6.3研究JDBC基礎結構 196 6.4SpringJDBC基礎結構 199 6.5數據庫連接和數據源 200 6.6嵌入數據庫支持 203 6.7在DAO類中使用DataSource 204 6.8異常處理 206 6.9JdbcTemplate類 207 6.9.1在DAO類中初始化JdbcTemplate 207 6.9.2通過NamedParameterJdbcTemplate使用命名參數 209 6.9.3使用RowMapper<T>檢索域對象 210 6.10使用ResultSetExtractor檢索嵌套域對象 211 6.11建模JDBC操作的Spring類 213 6.12使用MappingSqlQuery<T>查詢數據 215 6.13插入數據并檢索生成的鍵 220 6.14使用BatchSqlUpdate進行批處理操作 221 6.15使用SqlFunction調用存儲函數 225 6.16SpringData項目:JDBCExtensions 226 6.17使用JDBC的注意事項 226 6.18SpringBootJDBC 227 6.19小結 229 第7章在Spring中使用Hibernate 230 7.1示例代碼的示例數據模型 230 7.2配置Hibernate的SessionFactory 232 7.3使用Hibernate注解的ORM映射 234 7.3.1簡單的映射 235 7.3.2一對多映射 238 7.3.3多對多映射 239 7.4Hibernate會話接口 240 7.4.1使用Hibernate查詢語言查詢數據 241 7.4.2使用延遲獲取進行簡單查詢 241 7.4.3使用關聯獲取進行查詢 243 7.5插入數據 245 7.6更新數據 248 7.7刪除數據 249 7.8配置Hibernate以便從實體生成表 250 7.9注解方法或字段? 252 7.10使用Hibernate時的注意事項 254 7.11小結 254 第8章在Spring中使用JPA2進行數據訪問 255 8.1JPA2.1介紹 255 8.1.1示例代碼的示例數據模型 256 8.1.2配置JPA的EntityManagerFactory 256 8.1.3使用JPA注解進行ORM映射 258 8.2使用JPA執行數據庫操作 259 8.2.1使用Java持久化查詢語言來查詢數據 260 8.2.2查詢非類型化結果 266 8.3使用構造函數表達式查詢自定義結果類型 267 8.3.1插入數據 269 8.3.2更新數據 271 8.3.3刪除數據 272 8.4使用本地查詢 273 8.5使用簡單的本地查詢 273 8.6使用SQLResultSet映射進行本地查詢 274 8.7SpringDataJPA介紹 278 8.7.1添加SpringDataJPA庫依賴項 279 8.7.2使用SpringDataJPARepository抽象 進行數據庫操作 279 8.8使用JpaRepository 283 8.9帶有自定義查詢的SpringDataJPA 284 8.10通過使用HibernateEnvers保存 實體版本 293 8.10.1為實體版本控制添加表 293 8.10.2為實體版本控制配置 EntityManagerFactory 294 8.10.3啟用實體版本控制和歷史檢索 296 8.10.4測試實體版本控制 297 8.11SpringBootJPA 298 8.12使用JPA時的注意事項 302 8.13小結 302 第9章事務管理 303 9.1研究Spring事務抽象層 303 9.2PlatformTransactionManager的實現 304 9.3分析事務屬性 305 9.3.1TransactionDefinition接口 305 9.3.2TransactionStatus接口 306 9.4示例代碼的示例數據模型和基礎結構 307 9.4.1創建一個帶有依賴項的簡單SpringJPA項目 307 9.4.2示例數據模型和通用類 308 9.4.3使用AOP配置進行事務管理 315 9.5使用編程式事務 316 9.6使用Spring實現全局事務 318 9.6.1實現JTA示例的基礎結構 318 9.6.2使用JTA實現全局事務 319 9.6.3SpringBootJTA 325 9.6.4使用JTA事務管理器的注意事項 328 9.7小結 329 第10章使用類型轉換和格式化進行驗證 330 10.1依賴項 330 10.2Spring類型轉換系統 331 10.3使用PropertyEditors從字符串進行轉換 331 10.4Spring類型轉換介紹 333 10.4.1實現自定義轉換器 333 10.4.2配置ConversionService 334 10.4.3任意類型之間的轉換 335 10.5Spring中的字段格式化 338 10.5.1實現自定義格式化器 338 10.5.2配置ConversionServiceFactoryBean 339 10.6Spring中的驗證 340 10.6.1使用SpringValidator接口 340 10.6.2使用JSR-349BeanValidation 342 10.6.3在Spring中配置BeanValidation支持 343 10.6.4創建自定義驗證器 344 10.7使用AssertTrue進行自定義驗證 346 10.8自定義驗證的注意事項 347 10.9決定使用哪種驗證API 347 10.10小結 347 第11章任務調度 348 11.1任務調度示例的依賴項 348 11.2Spring中的任務調度 349 11.2.1SpringTaskScheduler抽象介紹 349 11.2.2研究示例任務 350 11.2.3使用注解進行任務調度 355 11.2.4Spring中異步任務的執行 357 11.3Spring中任務的執行 359 11.4小結 360 第12章使用Spring遠程處理 361 12.1使用示例的數據模型 362 12.2為JPA后端添加必需的依賴項 363 12.3實現和配置SingerService 364 12.3.1實現SingerService 364 12.3.2配置SingerService 365 12.3.3公開服務 367 12.3.4調用服務 368 12.4在Spring中使用JMS 369 12.4.1在Spring中實現JMS監聽器 371 12.4.2在Spring中發送JMS消息 372 12.5SpringBootArtemis啟動器 373 12.6在Spring中使用RESTful-WS 375 12.6.1RESTfulWeb服務介紹 375 12.6.2為示例添加必需的依賴項 376 12.6.3設計SingerRESTfulWeb服務 376 12.6.4使用SpringMVC展示REST樣式的Web服務 376 12.7配置CastorXML 377 12.7.1實現SingerController 378 12.7.2配置SpringWeb應用程序 380 12.7.3使用curl測試RESTful-WS 382 12.7.4使用RestTemplate訪問RESTful-WS 383 12.7.5使用SpringSecurity來保護 RESTful-WS 386 12.8使用SpringBoot開發RESTful-WS 389 12.9在Spring中使用AMQP 392 12.10小結 397 第13章Spring測試 398 13.1測試類別介紹 398 13.2使用Spring測試注解 399 13.3實施邏輯單元測試 400 13.3.1添加所需的依賴項 400 13.3.2單元測試SpringMVC控制器 401 13.4實現集成測試 403 13.4.1添加所需的依賴項 403 13.4.2配置用于服務層測試的配置文件 403 13.4.3Java配置版本 404 13.4.4實施基礎結構類 405 13.4.5對服務層進行單元測試 408 13.4.6丟棄DbUnit 410 13.5實現前端單元測試 413 13.6小結 413 第14章Spring中的腳本支持 414 14.1在Java中使用腳本支持 414 14.2Groovy介紹 415 14.2.1動態類型化 416 14.2.2簡化的語法 416 14.2.3閉包 417 14.3與Spring一起使用Groovy 418 14.3.1開發Singer對象域 418 14.3.2實現規則引擎 418 14.3.3將規則工廠實現為Spring可刷新bean 420 14.3.4測試年齡分類規則 421 14.3.5內聯動態語言代碼 423 14.4小結 424 第15章應用程序監控 425 15.1Spring中的JMX支持 425 15.2將Springbean導出為JMX 425 15.3使用JavaVisualVM進行JMX監控 426 15.4監視Hibernate統計信息 428 15.5使用了SpringBoot的JMX 429 15.6小結 431 第16章Web應用程序 432 16.1實現示例的服務層 433 16.1.1對示例使用數據模型 433 16.1.2實現DAO層 435 16.1.3實現服務層 435 16.2配置SingerService 436 16.3MVC和SpringMVC介紹 437 16.3.1MVC介紹 438 16.3.2SpringMVC介紹 438 16.3.3SpringMVCWebApplicationContext層次結構 439 16.3.4SpringMVC請求生命周期 439 16.3.5SpringMVC配置 440 16.3.6在SpringMVC中創建第一個視圖 442 16.3.7配置DispatcherServlet 443 16.3.8實現SingerController 444 16.3.9實現歌手列表視圖 445 16.3.10測試歌手列表視圖 445 16.4理解SpringMVC項目結構 445 16.5實現國際化(il8n) 446 16.5.1在DispatcherServlet配置中配置國際化 446 16.5.2為國際化支持而修改歌手列表視圖 448 16.6使用主題和模板 448 16.7使用ApacheTiles查看模板 450 16.7.1設計模板布局 450 16.7.2實現頁面布局組件 451 16.8在SpringMVC中配置Tiles 453 16.9實現歌手信息視圖 454 16.9.1將URL映射到視圖 454 16.9.2實現顯示歌手視圖 454 16.9.3實現編輯歌手視圖 456 16.9.4實現添加歌手視圖 459 16.9.5啟用JSR-349(bean驗證) 460 16.10使用jQuery和jQueryUI 462 16.10.1jQuery和jQueryUI介紹 462 16.10.2在視圖中使用jQuery和jQueryUI 462 16.10.3使用CKEditor進行富文本編輯 463 16.10.4使用jqGrid實現具有分頁支持的數據網格 464 16.10.5在歌手列表視圖中啟用jqGrid 464 16.10.6在服務器端啟用分頁 466 16.11處理文件上傳 468 16.11.1配置文件上傳支持 468 16.11.2修改視圖以支持文件上傳 469 16.11.3修改控制器以支持文件上傳 470 16.12用SpringSecurity保護Web應用程序 471 16.12.1配置Spring安全性 471 16.12.2將登錄功能添加到應用程序中 473 16.12.3使用注解來保護控制器方法 475 16.13使用SpringBoot創建SpringWeb 應用程序 475 16.14設置DAO層 476 16.14.1設置服務層 477 16.14.2設置Web層 478 16.14.3設置Spring安全性 479 16.15創建Thymeleaf視圖 479 16.16使用Thymeleaf擴展 482 16.17小結 486 第17章WebSocket 487 17.1WebSocket介紹 487 17.2與Spring一起使用WebSocket 487 17.3使用WebSocketAPI 488 17.4使用STOMP發送消息 496 17.5小結 500 第18章Spring項目:批處理、集成和XD等 501 18.1SpringBatch 502 18.2JSR-352 507 18.3SpringBootBatch 509 18.4SpringIntegration 512 18.5SpringXD 516 18.6Spring框架的五個最顯著的功能 517 18.6.1功能性Web框架 518 18.6.2Java9互操作性 526 18.6.3JDK模塊化 526 18.6.4使用Java9和SpringWebFlux進行反應式編程 528 18.6.5Spring支持JUnit5Jupiter 529 18.7小結 536 附錄A設置開發環境 537 |
序: |