download: 高级爬虫实战 - 零碎把握破解反爬技能 挑战高薪
自己公司筹备换 SpringCloud 微服务,最近正在学习这方面的货色,总结一下浅显易懂的资料,分享一下。
运行环境:
jdk8+mysql+IntelliJ IDEA+maven
我的项目技术
springboot+maven+Hibernate+thymeleaf
数据库文件
链接: https://pan.baidu.com/s/1qZVl4Qw 明码:2ngr
链接: https://pan.baidu.com/s/1nxqqvsX 明码: cc4r
我的项目截图
一、json 接口开发
在以前的 spring 开发的时候需要咱们提供 json 接口的时候需要做的配置
1. 增加 jackjson 等相干 jar 包
2. 配置 spring controller 扫描
3. 对接的方法增加 @ResponseBody
就这样咱们会常常因为配置谬误,导致 406 谬误等等,spring boot 如何做呢,只需要类增加 @RestController 即可,默认类中的方法都会以 json 的格局返回
二、自定义 Filter
Spring Boot 主动增加了 OrderedCharacterEncodingFilter 和 HiddenHttpMethodFilter,并且咱们可能自定义 Filter
两个步骤:
1. 实现 Filter 接口,实现 Filter 方法
2. 增加 @Configuration 注解,将自定义 Filter 加入过滤链
三、自定义 Property
配置在 application.propertie 定义配置(这里要首先把 redis 服务起来,其余地方有用到 redis,不起会报错,保障数据库连接正确)
测试通过
四、数据库操作
1、增加相 jar 包
2、添配置文件
hibernate.hbm2ddl.auto 参数的作用次要用于:主动创建 | 更新 | 考据数据库表结构, 有四个值:
(1)、create:每次加载 hibernate 时都会删除上一次的生成的表,而后根据你的 model 类再从新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
(2)、create-drop:每次加载 hibernate 时根据 model 类生成表,然而 sessionFactory 一敞开, 表就主动删除。
(3)、update:最罕用的属性,第一次加载 hibernate 时根据 model 类会主动建立起表的结构(前提是先建立好数据库),当前加载 hibernate 时根据 model 类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 利用第一次运行起来后才会。
(4)、validate:每次加载 hibernate 时,考据创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,然而会插入新值。
dialect 次要是指定生成表名的存储引擎为 InneoDB
show-sql 是否打印出主动生产的 SQL,便利调试的时候查看
3、增加实体类和 Dao
SpringBoot 入门整合开发 java Web 我的项目实例
dao 只需继承 JpaRepository 类就可能,几乎可能不必写方法,可能根据方法名来主动的生产 SQL,比如 findByUserName 会主动生产一个以 userName 为参数的查问方法,比如 findAlll 主动会查问表外面的所有数据,比如主动分页等等。。
Entity 中不映射成列的字段得加 @Transient 注解,不加注解也会映射成列
SpringBoot 入门整合开发 java Web 我的项目实例测试
SpringBoot 入门整合开发 java Web 我的项目实例
五、Spring boot 中 Redis 的使用
Redis 是目前业界使用最广泛的内存数据存储。相比 memcached,Redis 反对更丰富的数据结构,例如 hashes, lists, sets 等,同时反对数据持久化。除此之外,Redis 还提供一些类数据库的个性,比如事务,HA,主从库。可能说 Redis 兼具了缓存零碎和数据库的一些个性,因此有着丰富的利用场景。
1、引入 spring-boot-starter-redis
SpringBoot 入门整合开发 java Web 我的项目实例
2、增加配置文件
SpringBoot 入门整合开发 java Web 我的项目实例 3、增加 cache 的配置类
SpringBoot 入门整合开发 java Web 我的项目实例 3、接下来就可能间接使用了
SpringBoot 入门整合开发 java Web 我的项目实例 SpringBoot 入门整合开发 java Web 我的项目实例
SpringBoot 入门整合开发 java Web 我的项目实例
4、主动根据方法生成缓存
SpringBoot 入门整合开发 java Web 我的项目实例
其中 value 的值就是缓存到 redis 中的 key
共享 Session-spring-session-data-redis
分布式零碎中,sessiong 共享有很多的解决打算,其中托管到缓存中是最罕用的打算之一,
1、引入依赖
SpringBoot 入门整合开发 java Web 我的项目实例 2、Session 配置:
SpringBoot 入门整合开发 java Web 我的项目实例
maxInactiveIntervalInSeconds: 设置 Session 生效工夫,使用 Redis Session 之后,原 Boot 的 server.session.timeout 属性不再失效
3、测试
SpringBoot 入门整合开发 java Web 我的项目实例登录 redis 输出 keys ‘sessions‘
SpringBoot 入门整合开发 java Web 我的项目实例登录 http://localhost:8080/uid 发现会一致,就说明 session 已经在 redis 外面进行无效的治理了。
SpringBoot 入门整合开发 java Web 我的项目实例
最初注意点:
问题一:如图
SpringBoot 入门整合开发 java Web 我的项目实例 redis 连接不上,可能你的 redis 服务还没起来,若本地没有 redis,下载一个
链接:https://pan.baidu.com/s/1dVEcYq 明码:8380
问题二:如图
SpringBoot 入门整合开发 java Web 我的项目实例你的 redis 版本太低了,至多应该是 2.8 的