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的