由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版]轻量级Java EE Web框架技术——Spring MVC+Spring+MyBatis+Spring Boo
¥ ×1
书名: | 轻量级Java EE Web框架技术——Spring MVC+Spring+MyBatis+Spring Boot |
出版社: | 清华大学出版社 |
出版日期 | 2022 |
ISBN号: | 9787302601975 |
本书介绍Java EE领域的Spring MVC、MyBatis、Spring和Spring Boot这4种主流框架和技术。本书分为5篇。第1篇介绍Java的构建工具javac、Ant和Maven;第2篇介绍构建Web应用的Spring MVC框架;第3篇介绍MyBatis ORM框架;第4篇介绍Spring容器;第5篇介绍Spring Boot。本书重要内容配有界面截图,关键内容还配以示意图,使复杂的技术更容易理解。书中还融入了学习方法介绍,以使读者触类旁通,更轻松地学习和理解其他框架。 本书便于教学与自学,注重理论与应用结合,是与主流技术接轨的教材,可供高校计算机类专业和培训机构教学以及个人自学使用。 |
|
|
本着有图就有真相的原则,关键部分都有截图,也画了大量的图形来辅助理解概念,希望以连环画的风格使复杂技术更容易看懂。 代码翔实,代码以展现技术方式存在,这样读起来更容易理解。 在编写过程中深刻剖析各种概念,究其根本。 编写过程融入学习的方法介绍,能够使读者触类旁通学习理解其他框架。 本书最重要的一个主线是解耦,无论Spring MVC、Spring容器与MyBatis ORM框架都是用来解耦合的。 本书中的另一个主线是框架的学习思路,无论大到框架,小到函数,其学习的思路是一致的,都是调用与传参。 |
|
第1篇构 建 工 具 第1章初识构建工具31.1安装和配置JDK3 1.1.1下载JDK3 1.1.2安装JDK3 1.1.3配置环境变量4 1.1.4测试安装4 1.2初识构建工具6 1.2.1编写Hello类6 1.2.2编译6 1.2.3运行7 1.2.4打包7 1.2.5运行打包文件8 第2章深入构建工具9 2.1构建项目9 2.1.1创建目录9 2.1.2依赖库文件9 2.1.3编写应用类9 2.2编译11 2.2.1javac编译选项11 2.2.2javac编译命令要素11 2.2.3查找依赖类12 2.2.4手工编译源文件13 2.2.5手工编译整个项目15 2.2.6乱码问题15 2.3打包16 2.3.1jar包结构16 2.3.2jar打包命令详解16 2.3.3打包应用17 2.3.4创建可执行的jar包18 2.3.5手工打包整个项目19 2.4运行20 2.4.1java命令详解20 2.4.2java命令的运行方式21 2.4.3Java运行要素22 2.4.4依赖库加载方案22 2.4.5引导类加载方案23 2.4.6扩展类加载方案23 2.4.7用户类加载方案23 2.4.8ClassLoader方案25 〖3〗轻量级Java EE Web框架技术——Spring MVC+Spring+MyBatis+Spring Boot目录〖3〗第3章Ant构建工具26 3.1Ant的特点26 3.2下载、安装和测试Ant26 3.2.1下载Ant26 3.2.2安装Ant26 3.2.3测试Ant27 3.3初识Ant27 3.3.1build.xml文件27 3.3.2创建目录28 3.3.3编译任务29 3.3.4打包任务30 3.3.5运行任务30 3.3.6清除任务31 3.3.7重新运行任务31 3.3.8生成清单文件32 3.4Ant文件命令32 3.4.1创建目录命令32 3.4.2复制命令33 3.4.3删除命令33 3.4.4移动命令34 3.5其他命令35 3.5.1时间戳命令35 3.5.2执行SQL语句36 3.6深入Ant36 3.6.1创建目录37 3.6.2清除项目37 3.6.3编译项目37 3.6.4classpath构建39 3.6.5打包项目40 3.6.6运行项目41 3.6.7打包可执行的jar(依赖外部)42 3.6.8打包可执行的jar(独立运行)44 第4章Maven构建工具46 4.1Maven的安装与配置46 4.1.1下载46 4.1.2设置系统环境变量46 4.1.3检测安装47 4.2Maven的基本概念48 4.2.1库文件管理48 4.2.2配置文件的作用48 4.2.3Maven项目坐标49 4.2.4配置项目依赖库50 4.2.5项目构建配置信息50 4.2.6Maven项目目录结构51 4.2.7Maven与Ant的对比51 4.3Maven仓库52 4.3.1仓库管理52 4.3.2本地仓库52 4.3.3远程仓库53 4.3.4Maven坐标与仓库路径的约定53 4.3.5Maven依赖库的作用域54 4.4创建项目55 4.4.1生成项目骨架插件55 4.4.2Maven创建项目的命令56 4.4.3可用项目骨架56 4.5创建Java项目58 4.5.1创建命令58 4.5.2下载的库文件59 4.5.3Maven自动创建的目录结构59 4.5.4Maven自动创建的pom.xml文件60 4.5.5Maven自动创建的Java类App.java60 4.5.6Maven自动创建的测试类AppTest.java61 4.6编译项目62 4.6.1编译命令62 4.6.2编译生成class文件62 4.7打包项目63 4.7.1打包命令63 4.7.2生成jar包文件64 4.7.3运行项目64 4.8清除编译结果64 4.9安装项目65 4.10镜像仓库配置66 4.10.1全局配置66 4.10.2单个项目依赖库镜像配置67 4.10.3单个项目插件库镜像配置68 第5章深入Maven构建工具71 5.1Maven生命周期71 5.1.1项目构建过程与Maven生命周期71 5.1.2Clean生命周期72 5.1.3Default生命周期72 5.1.4Site生命周期73 5.1.5生命周期内各阶段和生命周期之间的关系74 5.1.6Maven常用命令74 5.2Maven插件74 5.2.1Maven插件框架74 5.2.2与生命周期有关的插件74 5.2.3插件调用方式76 5.2.4插件调用方式的差异76 5.2.5插件的配置79 5.2.6绑定生命周期与插件目标79 5.3Maven构建配置80 5.3.1<build>标签80 5.3.2基本元素配置标签81 5.3.3<resources>标签81 5.3.4<plugins>标签82 5.3.5<pluginManagement>标签83 5.4编译插件84 5.5打包插件84 5.5.1增加helloapp功能84 5.5.2常用的打包插件85 5.6用jar与dependency插件打包与运行86 5.6.1创建可运行的jar86 5.6.2设置启动类87 5.6.3设置库路径87 5.6.4利用mavendependencyplugin复制jar包87 5.6.5打包安装88 5.6.6运行包89 5.7用mavenassemblyplugin插件打包与运行89 5.7.1配置mavenassemblyplugin插件89 5.7.2创建可执行的jar包90 5.7.3绑定到default生命周期打包阶段90 5.7.4jar包命名91 5.7.5打包安装91 5.7.6运行包92 5.7.7jar包文件分析92 5.8利用mavenjarplugin与mavenassemblyplugin插件打包与运行93 5.8.1mavenassemblyplugin插件配置93 5.8.2deployment.xml文件配置93 5.8.3打包安装94 5.8.4运行包95 第6章构建工具Eclipse96 6.1Eclipse下载、安装和运行96 6.1.1Eclipse下载96 6.1.2Eclipse安装和运行96 6.2Java项目的编译98 6.2.1编译Java项目需要的条件98 6.2.2javac命令98 6.2.3在Maven中编译98 6.2.4在Eclipse中编译98 6.3在Eclipse中编译、打包和运行99 6.3.1创建应用99 6.3.2在开发环境下运行Java程序99 6.3.3配置构建路径99 6.3.4编译项目100 6.3.5打包项目101 6.3.6运行jar包104 第7章在Eclipse中使用Maven106 7.1在Eclipse中集成Maven106 7.1.1在Eclipse中安装Maven106 7.1.2在Eclipse中设置Maven106 7.1.3在Eclipse中设置Maven配置文件106 7.1.4更改Java环境为JDK108 7.2在Eclipse中管理Maven项目109 7.2.1打开Maven创建的项目109 7.2.2恢复项目依赖库110 7.2.3一般项目与Maven项目的互相转换112 7.2.4创建Maven项目helloapp1112 7.2.5使用Maven打包114 7.3管理pom.xml文件115 7.3.1总览pom.xml115 7.3.2依赖管理116 7.3.3查看依赖关系层次结构117 7.3.4全面查看pom.xml117 7.3.5文本编译页面118 本篇参考文献119 第2篇Spring MVC 第8章构建Web应用程序1238.1Tomcat的下载、安装和启停123 8.1.1下载Tomcat123 8.1.2安装Tomcat123 8.1.3启动和停止Tomcat服务126 8.2在Eclipse中管理Tomcat126 8.2.1添加Tomcat服务器126 8.2.2配置Tomcat服务器128 8.2.3管理Tomcat服务器130 8.3建立动态Web工程130 8.3.1建立动态Web工程WebHello130 8.3.2库文件路径130 8.3.3创建类TestMath.java132 8.3.4创建hello.jsp133 8.3.5目录结构134 8.4编译134 8.4.1设置编译的输出路径134 8.4.2编译项目135 8.5部署137 8.5.1配置部署路径137 8.5.2部署项目138 8.5.3重新部署141 8.6发布测试141 第9章用Maven构建Web应用程序143 9.1在Eclipse中创建Maven Web项目143 9.2完善项目145 9.2.1修改JDK版本146 9.2.2完善项目目录147 9.2.3修改编译版本147 9.2.4修改Project Facets的Java版本147 9.2.5添加Tomcat库文件148 9.2.6修改Project Facets的Runtimes150 9.2.7修改Project Facets的Dynamic Web Module版本152 9.3库文件管理153 9.3.1添加Maven依赖库153 9.3.2Eclipse中的Maven库153 9.4编写程序154 9.4.1创建类TestMath.java154 9.4.2创建hello.jsp154 9.4.3目录结构155 9.5用Eclipse编译Maven项目156 9.6在Eclipse中部署Maven项目157 9.7用Maven管理项目158 9.7.1设置Maven中的JDK版本158 9.7.2编译项目158 9.7.3打包项目159 9.7.4自定义打包160 9.8Maven依赖的添加161 9.8.1进入Maven网站161 9.8.2查找依赖的jar包161 9.8.3选择版本161 9.8.4复制依赖xml文件内容163 9.8.5修改pom.xml163 9.8.6自动下载库164 9.9动态Web工程与Maven Web项目的区别164 第10章MVC框架166 10.1MVC概述166 10.1.1模型166 10.1.2视图166 10.1.3控制器166 10.2MVC框架的产生167 10.2.1静态网页167 10.2.2动态网页168 10.2.3JSP技术170 10.2.4Servlet+JSP+JavaBean开发模式172 10.2.5MVC框架实现彻底解耦173 10.3Spring MVC的第一个示例174 10.3.1创建动态Web项目174 10.3.2复制Spring MVC库文件174 10.3.3配置web.xml接管Web请求174 10.3.4Spring MVC配置文件的框架176 10.3.5配置扫描注解177 10.3.6配置视图页面177 10.3.7编写Controller类177 10.3.8编写视图178 10.3.9运行项目178 10.4Web应用与MVC179 10.4.1Web应用模型179 10.4.2Web应用中的MVC179 10.4.3解耦原理180 10.4.4Spring MVC处理请求的过程181 10.5学习MVC框架的思路182 10.5.1函数描述与调用182 10.5.2Web请求182 10.5.3对MVC框架的理解182 第11章Spring MVC中的URL请求调用控制器的方法183 11.1概述183 11.2创建动态Web项目183 11.2.1编写控制器类183 11.2.2编写显示日期的视图184 11.2.3编写显示结果说明的视图184 11.3配置web.xml拦截URL请求185 11.3.1拦截带扩展名的请求185 11.3.2拦截所有请求185 11.3.3对静态资源文件放行186 11.4使用@Controller定义控制器186 11.4.1控制器的定义186 11.4.2Spring MVC对控制器组件的管理186 11.5使用@RequestMapping建立映射关系187 11.5.1@RequestMapping注解187 11.5.2处理多个URL188 11.5.3使用URL模板189 11.5.4用params属性处理特定请求参数191 11.5.5用method属性处理HTTP的方法192 11.5.6@RequestMapping的组合注解194 11.5.7@RequestMapping默认的处理方法194 11.6URL请求传递参数到控制器195 11.6.1概述195 11.6.2方法支持的参数类型195 11.6.3直接将请求参数名作为控制器类方法的形参196 11.6.4使用@RequestParam绑定URL请求参数196 11.6.5使用URL请求中的占位符参数接收参数197 11.6.6使用Pojo对象接收参数198 11.6.7使用@CookieValue获取cookie值199 11.6.8使用@RequestHeader获取报文头200 11.6.9使用HttpServletRequest、HttpSession获取参数201 11.7URL请求传递JSON数据201 11.7.1概述201 11.7.2测试客户端202 11.7.3使用@RequestBody接收报文体204 11.7.4使用@ResponseBody返回报文体204 11.7.5使用Pojo对象接收JSON数据204 11.7.6使用Map方式接收JSON数据205 11.7.7使用List方式接收JSON数据205 11.7.8使用字符串方式接收JSON数据205 第12章使用Spring MVC中的控制器调用视图207 12.1控制器调用视图207 12.1.1概述207 12.1.2控制器支持的返回类型207 12.1.3返回String类型的视图名称208 12.1.4返回ModelAndView对象209 12.1.5返回void209 12.1.6返回Map对象210 12.1.7Spring MVC的转发与重定向211 12.2控制器返回数据213 12.2.1使用@ResponseBody返回报文体213 12.2.2使用@RequestMapping的produces属性描述报文体215 12.2.3使用响应文本流Writer输出文本215 12.2.4使用HttpServletResponse输出文本216 12.3返回JSON数据217 12.3.1创建Controller类217 12.3.2返回实体对象217 12.3.3返回List对象218 12.3.4返回Map对象218 12.3.5返回字符串219 12.3.6使用@RestController生成RESTful API219 12.4@ResponseStatus注解220 12.4.1改变响应状态码220 12.4.2用@RequestMapping自定义异常应用221 12.5返回ResponseEntity类型223 12.5.1返回JSON字符串223 12.5.2返回字符串224 12.5.3设置ContentType响应头224 12.5.4添加任意响应头信息225 12.5.5返回指定状态码225 12.5.6通过静态方法获得响应实体对象226 12.5.7ResponseEntity的替代方法227 12.6控制器传递数据到视图229 12.6.1概述229 12.6.2创建控制器类229 12.6.3通过Model对象传递数据230 12.6.4通过Map对象传递数据230 12.6.5以Map对象作为返回参数传递数据231 12.6.6通过ModelAndView对象传递数据231 12.6.7使用@ModelAttribute传递和保存数据231 12.6.8使用@SessionAttributes传递和保存数据233 12.7用视图获取参数值236 12.7.1实例236 12.7.2EL表达式取值237 第13章Spring MVC高级应用238 13.1Spring MVC拦截器简介238 13.2实现Spring MVC拦截器238 13.2.1实现拦截器的方法238 13.2.2实现HandlerInterceptor接口239 13.2.3实现WebRequestInterceptor接口241 13.3登录权限验证243 13.3.1编写登录权限验证拦截器243 13.3.2编写登录控制器244 13.3.3配置拦截器247 13.3.4编写登录页面248 13.3.5编写主页面248 13.3.6编写查看图书页面249 13.3.7运行结果249 13.4文件上传250 13.4.1Spring MVC MultipartFile250 13.4.2装配MultipartResolver处理上传251 13.4.3复制库文件251 13.4.4创建上传页面251 13.4.5创建上传成功页面252 13.4.6编写上传控制器类253 13.4.7运行结果254 13.5文件下载255 13.5.1通过ResponseEntity下载文件255 13.5.2通过@ResponseBody返回字节数组257 13.5.3通过原生的HttpServletResponse对象下载文件260 13.6Spring MVC的表单标签库262 13.6.1引入表单标签库262 13.6.2表单标签库中的标签262 13.6.3表单标签的用法262 13.6.4表单元素标签的用法263 13.7Spring MVC表单标签实例266 13.7.1编写用户类266 13.7.2编写添加用户页面267 13.7.3编写显示用户信息页面269 13.7.4创建UserController控制器类270 13.7.5解决乱码问题271 13.7.6运行结果272 13.8Spring MVC国际化273 13.8.1软件国际化概述273 13.8.2国际化方案273 13.8.3存储国际化信息273 13.8.4取出国际化信息274 13.9基于浏览器的国际化274 13.9.1建立资源文件275 13.9.2在login.jsp页面输出国际化信息275 13.9.3在welcome.jsp页面输出国际化信息276 13.9.4在Spring MVC配置文件中配置国际化支持277 13.9.5编写用户类277 13.9.6在程序中获取国际化信息278 13.9.7运行结果279 13.10基于会话的国际化282 13.10.1配置支持基于会话的国际化282 13.10.2处理语言设置282 13.10.3创建可以选择语言的登录页面283 13.10.4运行结果284 13.11基于会话的国际化(语言设置自动处理)285 13.11.1配置语言设置处理285 13.11.2创建登录页面286 13.11.3运行结果287 本篇参考文献288 第3篇MyBatis ORM框架 第14章MyBatis中的ORM29114.1ORM的概念291 14.1.1对象和关系数据库291 14.1.2ORM的概念291 14.2JDBC持久化293 14.2.1JDBC持久化的特点293 14.2.2JDBC的体系结构293 14.2.3JDBC的执行流程293 14.2.4DriverManager中的解耦295 14.3JDBC中的对象和关系数据库296 14.3.1配置库文件297 14.3.2获取数据库连接297 14.3.3关闭数据库连接298 14.3.4定义对象299 14.3.5定义关系300 14.3.6写数据库301 14.3.7读数据库302 14.3.8测试303 14.4ORM框架持久化303 14.4.1ORM框架简介303 14.4.2MyBatis简介304 14.5MyBatis的用法305 14.5.1配置库文件305 14.5.2映射信息305 14.5.3映射文件306 14.5.4MyBatis配置文件307 14.5.5调用映射文件中的命令id309 14.5.6约定表字段名与对象属性名的映射关系312 14.5.7约定表字段的SQL别名与对象属性名的映射关系313 14.5.8通过resultMap配置嵌套映射关系314 14.5.9MyBatis小结315 第15章MyBatis读取数据库316 15.1<select>标签316 15.1.1输入参数类型316 15.1.2输出参数类型317 15.1.3标签体中的SQL语句317 15.1.4创建映射配置文件317 15.1.5创建测试类318 15.2<select>标签返回数据318 15.2.1返回实体对象318 15.2.2通过resultMap标示返回返回结果的类型319 15.2.3返回实体对象集合320 15.2.4返回HashMap321 15.2.5返回HashMap集合322 15.2.6返回Map型实体集合322 15.2.7返回Map型Map集合323 15.3resultMap324 15.3.1resultMap简介324 15.3.2表名与类名映射325 15.3.3表字段与对象属性映射325 15.3.4表主键字段映射326 15.4多表关联查询327 15.4.1创建账户表account327 15.4.2创建账户类Account327 15.4.3创建账户映射配置文件accountMapper.xml328 15.4.4创建学生账户类StudentAccount329 15.4.5创建学生账户映射配置文件StudentAccountMapper.xml329 15.4.6创建课程表course330 15.4.7创建学生课程表student_course330 15.4.8创建课程类Course330 15.4.9创建学生课程类StudentCourse331 15.4.10创建学生课程映射配置文件StudentCourseMapper.xml332 15.4.11映射要素332 15.5一对一关联映射查询332 15.5.1用级联属性配置映射332 15.5.2关联子配置嵌套映射334 15.5.3关联resultMap配置嵌套映射336 15.5.4关联查询配置嵌套映射337 15.6一对多关联映射查询339 15.6.1集合元素配置嵌套映射339 15.6.2集合resultMap配置嵌套映射342 15.6.3集合查询配置嵌套映射343 15.7多对多关联映射查询345 15.7.1返回多条记录345 15.7.2集合配置嵌套映射346 15.7.3双向多对多输出348 第16章MyBatis写数据库350 16.1简介350 16.1.1MyBatis中的DAO框架350 16.1.2DAO模式351 16.2创建用户表及用户类351 16.2.1创建用户表user351 16.2.2编写实体类User351 16.3在Mapper文件中定义命令353 16.3.1增加标签353 16.3.2删除标签354 16.3.3修改标签354 16.3.4查询标签354 16.4DAO层调用Mapper映射文件中的命令355 16.4.1MyBatis的构建流程355 16.4.2MyBatis的执行流程356 16.4.3构建SqlSessionFactory357 16.4.4从SqlSessionFactory中获取SqlSession358 16.4.5通过SqlSession执行命令359 16.5调用Mapper命令示例359 16.5.1增加用户359 16.5.2删除用户360 16.5.3修改用户信息360 16.5.4查询用户信息361 16.5.5运行结果362 16.6原始DAO层开发362 16.6.1Mapper配置文件namespace属性362 16.6.2Mapper配置文件的加载363 16.6.3定义访问接口363 16.6.4编写访问接口的实现363 16.6.5测试代码365 16.6.6运行结果366 16.7Mapper动态代理方式DAO层开发366 16.7.1Mapper配置文件中的namespace属性366 16.7.2Mapper接口367 16.7.3通过动态代理获取DAO对象368 16.7.4运行结果369 16.8Mapper配置文件的加载370 16.8.1Mapper接口类方式370 16.8.2包路径方式370 16.8.3资源文件方式370 16.9DAO中的参数传递371 16.9.1创建Mapper接口371 16.9.2创建Mapper配置文件371 16.9.3创建测试类372 16.9.4使用实体传参372 16.9.5使用Map对象传参373 16.9.6使用顺序号传参374 16.9.7使用@Param注解传参375 16.9.8使用@Param注解定义的实体参数名传参376 16.9.9使用List传参377 16.9.10使用${…}传参379 第17章MyBatis高级应用381 17.1MyBatis的动态SQL381 17.1.1MyBatis动态标签381 17.1.2创建Mapper接口381 17.1.3创建测试类382 17.2动态SQL条件判断382 17.2.1语句说明382 17.2.2根据查询条件实现动态查询384 17.2.3使用<choose>标签实现动态查询385 17.2.4根据参数值动态更新某些字段387 17.3动态SQL内容处理388 17.3.1where语句处理388 17.3.2用<trim>标签处理where语句390 17.3.3set语句391 17.3.4bind元素定义参数393 17.3.5<selectKey>标签394 17.3.6多数据库厂商支持395 17.4直接执行SQL语句396 17.4.1创建Mapper接口396 17.4.2创建映射文件396 17.4.3创建测试类397 17.4.4查询单个记录397 17.4.5查询多个记录398 17.4.6修改记录399 17.4.7增加记录399 17.4.8删除记录400 17.4.9完整代码401 17.5SQL语句构建器402 17.5.1问题402 17.5.2解决方法402 17.5.3构建器命令详解403 17.6构建器应用404 17.6.1查询单个记录404 17.6.2查询多个记录405 17.6.3删除记录405 17.6.4增加记录406 17.6.5修改记录406 17.7MyBatis注解407 17.7.1简介407 17.7.2注解命令407 17.7.3注解接口410 17.7.4测试类411 17.8注解SQL的Provider方式412 17.8.1创建Mapper接口412 17.8.2创建SQL提供类413 17.8.3创建测试类413 17.8.4@SelectProvider注解413 17.8.5@InsertProvider注解415 17.8.6@UpdateProvider注解416 17.8.7@DeleteProvider注解418 本篇参考文献420 第4篇Spring与Spring容器 第18章Spring概述42318.1传统对象的创建423 18.1.1对象创建者与使用者的关系423 18.1.2创建Maven项目423 18.1.3创建Food类423 18.1.4创建Person1类424 18.1.5测试与小结424 18.2使用工厂创建对象425 18.2.1对象创建者与使用者的关系425 18.2.2创建工厂FoodFactory类425 18.2.3创建Person2类426 18.2.4测试与小结426 18.3使用Spring创建对象427 18.3.1对象创建者与使用者的关系427 18.3.2添加Spring的Maven依赖427 18.3.3创建Person3类427 18.3.4Spring Bean配置428 18.3.5测试与小结429 第19章Spring容器431 19.1控制反转431 19.2依赖查找432 19.2.1依赖查找的概念432 19.2.2用JDBC获取数据库连接432 19.2.3用JNDI获取数据源433 19.3依赖注入435 19.3.1依赖注入的概念435 19.3.2构造子注入436 19.3.3设置注入437 19.3.4接口注入439 19.3.5小结441 19.4Bean的单例与多例模式442 19.4.1Bean的作用域442 19.4.2饿汉模式和懒汉模式442 19.4.3单例与多例的应用场景442 19.4.4单例测试443 19.4.5多例测试444 19.5Bean的实例化445 19.5.1构造方法445 19.5.2静态工厂方法446 19.5.3实例化工厂方法446 19.5.4测试447 19.6自动装配447 19.6.1指定装配448 19.6.2按类型装配448 19.6.3按名称装配448 19.6.4按构造方法参数类型装配448 19.6.5全局自动装配449 19.7容器的生命周期450 19.7.1容器的生命周期概述450 19.7.2容器的启动450 19.7.3创建Bean452 19.7.4获取Bean452 19.7.5容器的关闭453 19.8Bean的生命周期453 19.8.1Bean生命周期概述453 19.8.2感知接口454 19.8.3Bean获取自己的名称455 19.8.4在Bean中获取Bean工厂455 19.8.5Bean的初始化与销毁前事件455 19.8.6配置实现Bean初始化方法455 19.8.7接口实现Bean初始化方法456 19.8.8配置实现Bean销毁前方法456 19.8.9接口实现Bean销毁前方法456 19.8.10Bean生命周期测试457 第20章Spring注解配置459 20.1配置Bean的方式459 20.1.1Spring Bean的3种配置方式459 20.1.2XML配置方式459 20.2Spring注解配置460 20.2.1注解的特点460 20.2.2注解与XML配置的区别461 20.2.3配置要扫描的包461 20.2.4注解Spring组件462 20.2.5Bean的作用域463 20.3注解自动装配463 20.3.1基本类型属性注入463 20.3.2按类型装配(@Autowired)464 20.3.3按名称装配(@Autowired与@Qualifier)464 20.3.4@Autowired的required属性464 20.3.5按类型装配(@Resource)464 20.3.6按名称装配(@esource(name="xxx"))465 20.4注解Bean的生命周期465 20.4.1Bean初始化465 20.4.2Bean销毁前465 20.5基于JavaConfig类的Bean配置465 20.5.1JavaConfig类465 20.5.2加载JavaConfig类启动容器466 20.6使用JavaConfig类手动装配467 20.6.1调用创建Bean的方法装配Bean467 20.6.2通过创建Bean的方法的参数装配Bean467 20.6.3在创建Bean的方法中直接实例化Bean468 20.7使用JavaConfig类自动装配468 20.7.1按类型装配Bean468 20.7.2按名称装配Bean468 20.8JavaConfig配置生命周期469 20.8.1Bean初始化469 20.8.2Bean销毁前469 20.9JavaConfig类实例模式配置469 20.9.1单例模式469 20.9.2多例模式470 20.10JavaConfig类中的组件扫描470 20.10.1默认扫描包470 20.10.2指定扫描包471 20.10.3排除扫描特定类471 20.10.4扫描特定类471 第21章Spring扩展473 21.1概述473 21.2多个配置文件473 21.2.1<import>标签473 21.2.2@Import注解474 21.2.3@Import ImportSelector474 21.3动态创建Bean475 21.3.1概述475 21.3.2FactoryBean接口476 21.3.3FactoryBean示例476 21.3.4Spring与MyBatis整合中的FactoryBean示例477 21.4动态注册Bean定义: BeanDefinitionRegistryPostProcessor478 21.4.1概述478 21.4.2BeanDefinitionRegistryPostProcessor接口478 21.4.3BeanDefinitionRegistryPostProcessor示例479 21.4.4配置类后处理器480 21.4.5配置类后处理器的处理机制481 21.5动态注册Bean定义: ImportBeanDefintionRegistrar482 21.5.1ImportBeanDefintionRegistrar接口482 21.5.2处理机制482 21.5.3ImportBeanDefintionRegistrar示例483 21.6动态修改Bean定义: BeanFactoryPostProcessor485 21.6.1BeanFactoryPostProcessor概述485 21.6.2BeanFactoryPostProcessor示例485 21.7动态修改Bean: BeanPostProcessor487 21.7.1BeanPostProcessor概述487 21.7.2BeanPostProcessor示例488 21.7.3自定义注解的实现489 第22章Spring与MyBatis整合495 22.1创建Maven项目SpringMyBatis495 22.2Spring配置文件496 22.3数据源Bean的管理和配置497 22.3.1数据源依赖包497 22.3.2数据库信息配置498 22.3.3引入属性文件498 22.3.4数据源Bean的配置498 22.4会话工厂Bean的管理和配置499 22.4.1会话工厂依赖包499 22.4.2会话工厂Bean的配置499 22.4.3配置扫描Mapper文件的路径500 22.4.4配置实体类所在的包500 22.4.5指定MyBatis配置文件的位置501 22.5DAO Bean配置管理501 22.5.1单个Mapper DAO Bean501 22.5.2批量Mapper DAO Bean502 22.5.3获取DAO Bean504 22.6扫描全部Bean管理配置504 22.7事务管理Bean504 22.7.1事务管理依赖配置504 22.7.2事务管理Bean配置505 22.8AspectJ支持自动代理实现AOP功能505 22.9编写应用505 22.9.1编写服务类505 22.9.2编写测试类506 22.10Spring使用的注解507 第23章SSM整合511 23.1创建Maven项目SSMApp511 23.2引入依赖512 23.2.1引入Spring MVC依赖512 23.2.2设置打包插件512 23.3SSM中的Spring整合513 23.3.1启动Spring513 23.3.2Spring与Spring MVC框架的整合514 23.4编写控制器514 23.4.1编写StudentController514 23.4.2添加登录方法515 23.4.3添加登录判断方法515 23.4.4添加主页面映射515 23.4.5添加查看图书映射516 23.4.6添加退出方法516 23.5登录验证拦截器516 23.5.1拦截器定义516 23.5.2拦截器配置517 23.6在Eclipse中部署测试517 23.7用Maven打包518 23.7.1设置打包方式518 23.7.2设置编译时依赖518 23.7.3打包519 本篇参考文献520 第5篇Spring Boot 第24章Spring Boot入门52324.1Spring Boot概述523 24.1.1什么是Spring Boot523 24.1.2使用Spring Boot的好处523 24.2第一个Spring Boot程序524 24.2.1用Maven构建项目524 24.2.2设置mavenjarplugin版本525 24.2.3更新Maven项目526 24.2.4项目结构527 24.2.5引入父模块528 23.2.6引入Web模块528 23.2.7创建Controller类528 24.2.8创建主程序529 24.2.9启动主程序529 24.2.10总结530 24.2.11Spring Boot的核心特性530 24.3Spring Boot主程序分析530 24.3.1@SpringBootApplication注解531 24.3.2组件定义532 24.3.3组件配置532 24.3.4组件扫描533 24.3.5自定义组件扫描533 24.3.6生成容器启动扫描533 24.3.7从容器中获取Bean534 第25章Spring Boot自动装配536 25.1自动装配机制536 25.1.1SPI机制536 25.1.2JDBC中的SPI机制536 25.1.3Spring Boot中的类SPI扩展机制539 25.2自动配置包管理540 25.2.1引入机制540 25.2.2注册机制540 25.2.3注册逻辑541 25.3自动装配引入器541 25.3.1自动装配引入器配置541 25.3.2引入机制542 25.3.3执行机制542 25.4获得所有自动装配类的配置543 25.4.1自动装配类的配置543 25.4.2执行机制544 25.4.3自动装配类的获取544 25.5获得自动装配类的过滤条件546 25.5.1过滤条件配置546 25.5.2执行机制546 25.5.3过滤条件获取547 第26章有条件装配Bean548 26.1概述548 26.1.1Bean的配置方法548 26.1.2Bean的有条件注册548 26.2无条件创建Bean548 26.2.1创建Spring Boot项目549 26.2.2创建Bean549 26.2.3使用Bean550 26.3条件注解@Conditional551 26.3.1Condition接口与实现552 26.3.2设置环境变量552 26.3.3有条件注册Bean553 26.4简化条件注解554 26.4.1概述554 26.4.2属性条件注解555 26.5将条件注解到类上557 26.5.1类条件注解557 1
售后保障最近浏览猜你喜欢亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心! 亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~ 非常抱歉,您前期未参加预订活动, 抱歉,您暂无任性付资格 此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购
|