目录.. V 扫一扫 目录 源码下载 1.1.Spring简介...............................................................................................................................................1 1.1.1.Spring的由来.............................................................................................................................1 1.1.2.Spring的体系结构.....................................................................................................................1 1.2.Spring开发环境的构建 ...................................................................................................................4 1.2.1.配置IntelliJ IDEA的Web服务器..........................................................................................4 1.2.2.Spring的下载.............................................................................................................................6 1.3.使用IntelliJ IDEA开发Spring入门程序 ....................................................................................6 本章小结...............................................................................................................................................................9 习题1....................................................................................................................................................................9 2.1.Spring IoC的基本概念........................................................................................................................10 2.2.Spring IoC容器 .............................................................................................................................11 2.2.1.BeanFactory............................................................................................................................11 2.2.2.ApplicationContext...............................................................................................................11 2.2.3.GenericApplicationContext...............................................................................................13 2.3.依赖注入的类型 ..............................................................................................................................14 2.3.1.使用构造方法注入....................................................................................................................14 2.3.2.使用属性的Setter方法注入..................................................................................................16 本章小结............................................................................................................................................................17 习题2.................................................................................................................................................................17 3.1.Bean的配置...........................................................................................................................................18 3.2.Bean的实例化 ................................................................................................................................19 3.2.1.构造方法实例化........................................................................................................................19 3.2.2.静态工厂方法实例化...............................................................................................................20 3.2.3.实例工厂方法实例化...............................................................................................................21 3.3.Bean的作用域 ................................................................................................................................22 3.3.1.singleton作用域.....................................................................................................................23 3.3.2.prototype作用域....................................................................................................................24 3.4.Bean的生命周期 ............................................................................................................................24 3.5.Bean的装配方式 ............................................................................................................................27 3.5.1.基于XML配置的装配.............................................................................................................27 3.5.2.基于注解的装配........................................................................................................................30 本章小结............................................................................................................................................................34 习题3.................................................................................................................................................................34 4.1.Spring AOP的基本概念......................................................................................................................36 4.1.1.AOP的概念...............................................................................................................................36 4.1.2.AOP的术语...............................................................................................................................37 4.2.动态代理 ...........................................................................................................................................38 4.2.1.JDK动态代理............................................................................................................................38 4.2.2.CGLIB动态代理.......................................................................................................................41 4.3.基于代理类的AOP实现 ...............................................................................................................43 4.4.基于XML配置开发AspectJ .......................................................................................................46 4.5.基于注解开发AspectJ ..................................................................................................................51 本章小结............................................................................................................................................................53 习题4 ................................................................................................................................................................53 5.1.Spring的数据库编程 ....................................................................................................................55 5.1.1.Spring JDBC的配置...............................................................................................................55 5.1.2.Spring jdbcTemplate的使用方法......................................................................................56 5.2.编程式事务管理 ..............................................................................................................................60 5.2.1.基于底层API的编程式事务管理..........................................................................................60 5.2.2.基于TransactionTemplate的编程式事务管理................................................................62 5.3.声明式事务管理 ..............................................................................................................................65 5.3.1.基于XML方式的声明式事务管理........................................................................................65 5.3.2.基于@Transactional注解的声明式事务管理...................................................................69 5.3.3.如何在声明式事务管理中捕获异常......................................................................................72 本章小结............................................................................................................................................................73 习题5.................................................................................................................................................................74 6.1.MVC模式与Spring MVC的工作原理.............................................................................................75 6.1.1.MVC模式..................................................................................................................................75 6.1.2.Spring MVC的工作原理.......................................................................................................76 6.1.3.Spring MVC接口....................................................................................................................77 6.2.第一个Spring MVC应用 .............................................................................................................77 6.2.1.使用IDEA创建Web应用并添加相关依赖........................................................................77 6.2.2.在web.xml文件中部署DispatcherServlet......................................................................79 6.2.3.创建Web应用首页.................................................................................................................80 6.2.4.创建Controller类..................................................................................................................80 6.2.5.创建Spring MVC配置文件并配置Controller映射信息...............................................81 6.2.6.应用的其他页面........................................................................................................................81 6.2.7.在IDEA中发布并运行Spring MVC应用..........................................................................82 6.3.视图解析器..............................................................................................................................................83 本章小结............................................................................................................................................................84 习题6.................................................................................................................................................................84 7.1.基于注解的控制器.................................................................................................................................86 7.1.1.Controller注解类型...............................................................................................................86 7.1.2.RequestMapping注解类型.................................................................................................87 7.1.3.编写请求处理方法....................................................................................................................88 7.2.Controller接收请求参数的常见方式 .........................................................................................89 7.2.1.通过实体Bean接收请求参数...............................................................................................90 7.2.2.通过处理方法的形参接收请求参数......................................................................................95 7.2.3.通过HttpServletRequest接收请求参数...........................................................................96 7.2.4.通过@PathVariable接收URL中的请求参数..................................................................96 7.2.5.通过@RequestParam接收请求参数.................................................................................97 7.2.6.通过@ModelAttribute接收请求参数...............................................................................97 7.3.重定向与转发 ..................................................................................................................................98 7.4.应用@Autowired进行依赖注入.......................................................................................................99 7.5.@ModelAttribute注解.....................................................................................................................101 本章小结..........................................................................................................................................................102 习题7...............................................................................................................................................................102 8.1.数据绑定................................................................................................................................................104 8.2.表单标签库............................................................................................................................................104 8.3.数据绑定的应用 ............................................................................................................................108 8.4.JSON数据交互 .............................................................................................................................114 8.4.1.JSON概述...............................................................................................................................114 8.4.2.JSON数据转换......................................................................................................................115 本章小结..........................................................................................................................................................118 习题8...............................................................................................................................................................118 9.1.拦截器概述............................................................................................................................................119 9.1.1.拦截器的定义..........................................................................................................................119 9.1.2.拦截器的配置..........................................................................................................................120 9.2.拦截器的执行流程 ........................................................................................................................121 9.2.1.单个拦截器的执行流程.........................................................................................................121 9.2.2.多个拦截器的执行流程.........................................................................................................123 9.3.应用案例——用户登录权限验证 ..............................................................................................125 本章小结..........................................................................................................................................................129 习题9...............................................................................................................................................................129 10.1.数据验证概述.....................................................................................................................................130 10.1.1.客户端验证..........................................................................................................................130 10.1.2.服务器端验证.....................................................................................................................130 10.2.Spring验证器 ............................................................................................................................131 10.2.1.Validator接口...................................................................................................................131 10.2.2.ValidationUtils类.............................................................................................................131 10.2.3.Validator验证示例...........................................................................................................132 10.3.Jakarta Bean Validation(JSR 380) .................................................................................137 10.3.1.Jakarta Bean Validation验证配置...............................................................................137 10.3.2.标注类型..............................................................................................................................138 10.3.3.Jakarta Bean Validation验证示例...............................................................................140 本章小结..........................................................................................................................................................142 习题10.............................................................................................................................................................142 11.1.程序国际化概述.................................................................................................................................143 11.1.1.Java国际化的思想............................................................................................................143 11.1.2.Java支持的语言和国家....................................................................................................144 11.1.3.Java程序国际化................................................................................................................144 11.1.4.带占位符的国际化信息.....................................................................................................145 11.2.Spring MVC的国际化.....................................................................................................................146 11.2.1.Spring MVC加载资源属性文件....................................................................................146 11.2.2.语言区域的选择.................................................................................................................147 11.2.3.使用message标签显示国际化信息.............................................................................147 11.3.用户自定义切换语言示例 .........................................................................................................148 本章小结..........................................................................................................................................................153 习题11.............................................................................................................................................................153 12.1.示例介绍..............................................................................................................................................154 12.2.SimpleMappingExceptionResolver类......................................................................................159 12.3.HandlerExceptionResolver接口.................................................................................................160 12.4.@ExceptionHandler注解..............................................................................................................162 12.5.@ControllerAdvice注解...............................................................................................................162 本章小结..........................................................................................................................................................163 习题12.............................................................................................................................................................163 13.1.文件的上传 ..................................................................................................................................164 13.2.文件的下载 ..................................................................................................................................169 本章小结..........................................................................................................................................................172 习题13.............................................................................................................................................................172 14.1.MyBatis简介.....................................................................................................................................173 14.2.MyBatis的环境构建.........................................................................................................................174 14.3.MyBatis的工作原理.........................................................................................................................174 14.4.MyBatis的核心配置.........................................................................................................................175 14.5.使用IntelliJ IDEA开发MyBatis入门程序 ..........................................................................176 14.6.SSM框架的整合开发.......................................................................................................................180 14.6.1.相关JAR包.........................................................................................................................180 14.6.2.MapperScannerConfigurer方式................................................................................181 14.6.3.整合示例 ......................................................................................................................182 14.6.4.SqlSessionDaoSupport方式 ................................................................................187 14.7.使用MyBatis Generator插件自动生成映射文件...............................................................................191 14.8.映射器概述.........................................................................................................................................193 14.9.<select>元素 ............................................................................................................................194 14.9.1.使用Map接口传递参数..................................................................................................194 14.9.2.使用Java Bean传递参数................................................................................................197 14.9.3.使用@Param注解传递参数..........................................................................................197 14.9.4.<resultMap>元素...........................................................................................................198 14.9.5.使用POJO存储结果集....................................................................................................199 14.9.6.使用Map存储结果集......................................................................................................200 14.10.<insert>、<update>、<delete>和<sql>元素 .........................................................201 14.10.1.<insert>元素...............................................................................................................201 14.10.2.<update>与<delete>元素....................................................................................203 14.10.3.<sql>元素.....................................................................................................................204 14.11.级联查询...........................................................................................................................................204 14.11.1.一对一级联查询 .....................................................................................................204 14.11.2.一对多级联查询 .....................................................................................................208 14.11.3.多对多级联查询 .....................................................................................................211 14.12.动态SQL ...................................................................................................................................214 14.12.1.<if>元素........................................................................................................................214 14.12.2.<choose>、<when>和<otherwise>元素.......................................................215 14.12.3.<trim>元素..................................................................................................................216 14.12.4.<where>元素..............................................................................................................217 14.12.5.<set>元素.....................................................................................................................218 14.12.6.<foreach>元素............................................................................................................218 14.12.7.<bind>元素..................................................................................................................219 14.13.MyBatis的缓存机制 ...............................................................................................................220 14.13.1.一级缓存(SqlSession级别的缓存)......................................................................221 14.13.2.二级缓存(Mapper级别的缓存)............................................................................222 本章小结..........................................................................................................................................................224 习题14.............................................................................................................................................................225 15.1.系统设计..............................................................................................................................................226 15.1.1.系统的功能需求.................................................................................................................226 15.1.2.系统的模块划分.................................................................................................................227 15.2.数据库设计.........................................................................................................................................227 15.2.1.数据库的概念结构设计.....................................................................................................228 15.2.2.数据库的逻辑结构设计.....................................................................................................229 15.2.3.创建数据表..........................................................................................................................230 15.3.系统管理..............................................................................................................................................231 15.3.1.添加相关依赖.....................................................................................................................231 15.3.2.视图页面及静态资源管理.................................................................................................231 15.3.3.应用的包结构.....................................................................................................................232 15.3.4.配置文件..............................................................................................................................232 15.4.组件设计..............................................................................................................................................236 15.4.1.管理员登录权限验证拦截器.............................................................................................236 15.4.2.前台用户登录权限验证拦截器........................................................................................236 15.4.3.验证码..................................................................................................................................237 15.4.4.工具类..................................................................................................................................237 15.5.后台管理子系统的实现 .............................................................................................................237 15.5.1.管理员登录..........................................................................................................................237 15.5.2.类型管理..............................................................................................................................238 15.5.3.新增商品..............................................................................................................................241 15.5.4.查询商品..............................................................................................................................243 15.5.5.修改商品..............................................................................................................................246 15.5.6.删除商品..............................................................................................................................248 15.5.7.查询订单..............................................................................................................................249 15.5.8.按月统计..............................................................................................................................250 15.5.9.按类型统计..........................................................................................................................253 15.5.10.安全退出...........................................................................................................................255 15.6.前台电子商务子系统的实现 .....................................................................................................256 15.6.1.导航栏及首页搜索.............................................................................................................256 15.6.2.最新商品..............................................................................................................................257 15.6.3.用户注册..............................................................................................................................258 15.6.4.用户登录..............................................................................................................................259 15.6.5.商品详情..............................................................................................................................260 15.6.6.收藏商品..............................................................................................................................261 15.6.7.购物车..................................................................................................................................262 15.6.8.下单......................................................................................................................................264 15.6.9.个人信息..............................................................................................................................266 15.6.10.我的收藏...........................................................................................................................267 15.6.11.我的订单...........................................................................................................................268 本章小结..........................................................................................................................................................269 习题15.............................................................................................................................................................269 16.1.Spring Boot概述.............................................................................................................................270 16.1.1.Spring Boot简介.............................................................................................................270 16.1.2.Spring Boot的优点.........................................................................................................271 16.1.3.Spring Boot的主要特性.................................................................................................271 16.2.第一个Spring Boot应用 ........................................................................................................271 16.2.1.Maven简介........................................................................................................................271 16.2.2.Maven的pom.xml.........................................................................................................272 16.2.3.使用IntelliJ IDEA快速构建Spring Boot应用..........................................................273 16.3.Spring Boot的基本配置 .........................................................................................................275 16.3.1.启动类和核心注解@SpringBootApplication...........................................................275 16.3.2.Spring Boot的全局配置文件.........................................................................................276 16.3.3.Spring Boot的Starters.................................................................................................277 16.4.读取应用配置 ..............................................................................................................................277 16.4.1.Environment.....................................................................................................................277 16.4.2.@Value...............................................................................................................................278 16.4.3.@ConfigurationProperties..........................................................................................279 16.4.4.@PropertySource...........................................................................................................280 16.5.日志配置..............................................................................................................................................281 16.6.Spring Boot的自动配置原理.........................................................................................................282 本章小结..........................................................................................................................................................284 习题16.............................................................................................................................................................284 17.1.Thymeleaf模板引擎........................................................................................................................285 17.1.1.Spring Boot的Thymeleaf支持...................................................................................285 17.1.2.Thymeleaf的基础语法....................................................................................................286 17.1.3.Thymeleaf的常用属性....................................................................................................290 17.2.使用Spring Boot和Thymeleaf实现页面信息的国际化 ................................................294 17.3.Spring Boot和Thymeleaf的表单验证 ...............................................................................297 17.4.基于Thymeleaf和BootStrap的Web开发实例 ..............................................................299 本章小结..........................................................................................................................................................302 习题17.............................................................................................................................................................302 18.1.Spring Boot整合MyBatis .....................................................................................................303 18.2.MyBatis-Plus快速入门 ............................................................................................................306 18.2.1.MyBatis-Plus简介...........................................................................................................306 18.2.2.Spring Boot整合MyBatis-Plus...................................................................................306 18.3.MyBatis-Plus注解............................................................................................................................309 18.4.MyBatis-Plus代码生成器...............................................................................................................312 18.4.1.安装MyBatis-Plus代码生成器......................................................................................312 18.4.2.配置MyBatis-Plus代码生成器......................................................................................312 18.5.CRUD接口 ..................................................................................................................................320 18.5.1.Mapper CRUD接口........................................................................................................320 18.5.2.Service CRUD接口..........................................................................................................322 18.6.条件构造器.........................................................................................................................................328 本章小结..........................................................................................................................................................332 习题18.............................................................................................................................................................332 19.1.JUnit 5注解.......................................................................................................................................333 19.1.1.JUnit 5简介.......................................................................................................................333 19.1.2.JUnit 5注解.......................................................................................................................334 19.1.3.JUnit 5断言.......................................................................................................................335 19.2.单元测试用例 ..............................................................................................................................336 19.2.1.测试环境的构建.................................................................................................................337 19.2.2.测试Mapper接口............................................................................................................338 19.2.3.测试Service层..................................................................................................................340 19.3.使用Postman测试Controller层 .........................................................................................341 本章小结..........................................................................................................................................................343 习题19.............................................................................................................................................................343 20.1.系统设计..............................................................................................................................................344 20.1.1.系统的功能需求.................................................................................................................344 20.1.2.系统的模块划分.................................................................................................................344 20.2.数据库设计.........................................................................................................................................345 20.2.1.数据库的概念结构设计.....................................................................................................345 20.2.2.数据库的逻辑结构设计.....................................................................................................345 20.3.系统管理..............................................................................................................................................346 20.3.1.项目依赖管理.....................................................................................................................346 20.3.2.页面管理..............................................................................................................................346 20.3.3.包管理..................................................................................................................................347 20.3.4.分页插件配置类.................................................................................................................347 20.3.5.全局配置文件.....................................................................................................................348 20.4.组件设计..............................................................................................................................................348 20.4.1.工具类..................................................................................................................................348 20.4.2.异常统一处理.....................................................................................................................349 20.4.3.验证码..................................................................................................................................350 20.5.名片管理..............................................................................................................................................350 20.5.1.领域模型与持久化实体类.................................................................................................350 20.5.2.Controller层的实现.........................................................................................................351 20.5.3.Service层的实现..............................................................................................................352 20.5.4.Dao层的实现.....................................................................................................................354 20.5.5.添加名片..............................................................................................................................355 20.5.6.管理名片..............................................................................................................................357 20.6.用户相关..............................................................................................................................................360 20.6.1.领域模型与持久化实体类.................................................................................................360 20.6.2.Controller层的实现.........................................................................................................360 20.6.3.Service层的实现..............................................................................................................361 20.6.4.Dao层的实现.....................................................................................................................362 20.6.5.注册......................................................................................................................................363 20.6.6.登录......................................................................................................................................365 20.6.7.修改密码..............................................................................................................................366 20.6.8.安全退出..............................................................................................................................367 本章小结..........................................................................................................................................................367 习题20.............................................................................................................................................................367