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的