《深入实践SpringBoot》读书笔记
福利置顶链接https://pan.baidu.com/s/1Z6W2e40vjOJmMQS3G3Y7Jg 密码atv2随书代码https://github.com/chenfromsz个人评价书籍一般般勉强6分满分10值得快速浏览一遍了解一下自己不太熟悉的知识点和领域同时也可以看一下大纲目录了解一下spring boot云应用开发的套路。入门使用数据库日期类型的数据使用注解DateTimeFormat 来进行格式化以保证存取时的格式问题。JsonBackReference 注解用来防止关系对象的递归访问。spring.jpa.hibernate.ddl-auto:update利用hibernate来自动更新表结构即如果表不存在则创建或者如果修改表结构则执行表结构的同步更新。Spring Boot界面设计提高数据库访问性能使用druid监控白名单黑名单扩展Jpa功能NoRepositoryBean注解标记自定义的扩展接口以防被当作常规的repository接口。使用Redis缓存。web应用模块Spring Boot安全设计Spring Security框架提供HttpSecurity可对安全策略进行配置loginPage设置一个使用自定义的登录页面URLloginSuccessHandler设置自定义的一个登录成功处理器permitAll是完全允许访问的一些URL配置并可以使用通配符来设置这里将一些资源目录赋予可以完全访问的权限由settings指定的权限列表也赋予了完全访问的权限logout设置使用默认的登出logoutSuccessUrl设定登出成功的链接rememberMe用来记住用户的登录状态即用户没有执行退出时再次打开页面将不用登录csrf即跨站请求伪造cross-site request forgery这是一个防止跨站请求伪造攻击的策略设置accessDeniedPage配置一个拒绝访问的提示链接防御CSRF攻击logout.html是所有页面都会用到的一个页面文件在此文件页头上加入下面两行代码meta name_csrfth:content${_csrf.token}/meta name_csrf_headerth:content${_csrf.headerName}/并引用脚本文件public.js在public.js中增加函数$(function(){vartoken$(meta[name_csrf]).attr(content);varheader$(meta[name_csrf_header]).attr(content);$(document).ajaxSend(function(e,xhr,options){xhr.setRequestHeader(header,token);});});解读在表单提交时放入一个Token服务端验证该Token是否有效只允许有效Token请求否则拒绝当前操作。要对第三方开放接口可对特定的URL使用排除CSRF保护Spring Boot SSOSSOSingle Sign On单点登录使用分布式文件系统FastDFS组件服务端又分为跟踪器Tracker主要负责服务调度负载均衡存储节点Storage主要负责文件的存储、读取和同步等客户端API提供文件的上传、下载和删除等操作方法支持动态扩展可通过增加新卷或新组的方法增加更多存储节点文件的标识由卷名或组名、路径和文件名等三部分组成。Ueditor开源、可定制富文本编辑器。云应用开发Spring Cloud主要包含配置管理、服务发现、动态路由、负载均衡、断路器、安全管理、事件总线、分布式消息等组件的开发工具包。构建高性能服务平台Docker相对于虚拟机的优势Docker安装、常用指令、Dockerfile编写Docker-Compose安装、指令、YAML文件规范、自动配置实现原理SpringApplication的run方法自动配置原理即插即用原理当项目中引入相关包时相关功能将被启用约定优先原理在自动配置中加载一个类的配置时首先读取项目中的配置只有项目中没有相关配置才启用配置的默认值性能优化更改加载配置的方式指定加载一些应用所需的配置。Maven命令spring-bootrun–Ddebug查看日志找出Positive matches的类就是该应用所需加载的一些配置类将Tomcat换成Jetty后者更轻量级。但要结合Spring Boot具体版本更严格的场景需要进行Benchmark测试用数据来说话。应用增加如下启动参数-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port9004 -Dcom.sun.management.jmxremote.authenticatefalse -Dcom.sun.management.jmxremote.sslfalse然后可使用JConsole来观察应用运行的各项性能指标。数据访问实现原理JDBC连接数据源必须指定数据源类型和数据库驱动程序如早期MySQL的驱动程序是com.mysql.jdbc.DriverMySQL 8.0推荐使用com.mysql.cj.jdbc.Driver数据源类型默认使用org.apache.tomcat.jdbc.pool.DataSource即tomcat-jdbc。不同Spring Boot版本可能不一致查看org.springframework.boot.autoconfigure.jdbc.DataSourceProperties源码一窥究竟数据源的类型可通过配置更改因此可切换使用其他数据源如Druid、Hikari-CP修改配置文件即可spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedriver-class-name:com.mysql.jdbc.Driver查看org.springframework.boot.autoconfigure.jdbc.DatabaseDriver枚举类源码查看支持的数据库类型。数据库资源库接口的继承关系微服务核心技术实现原理附录附录ABCD是安装neo4jMongoDBRedis和RabbitMQ教程纯粹就是充字数啊。
