Java全栈工程师【已完结】

##  download:Java全栈工程师【已完结】

本人公司准备换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

Java全栈工程师【已完结】

dao只需继承JpaRepository类就能够,简直能够不用写办法,能够依据办法名来自动的消费SQL,比方findByUserName 会自动消费一个以 userName 为参数的查询办法,比方 findAlll 自动会查询表里面的一切数据,比方自动分页等等。。

Entity中不映射成列的字段得加@Transient注解,不加注解也会映射成列

Java全栈工程师【已完结】

测试

Java全栈工程师【已完结】

五、Spring boot中Redis的运用

Redis是目前业界运用最普遍的内存数据存储。相比memcached,Redis支持更丰厚的数据构造,例如hashes, lists, sets等,同时支持数据耐久化。除此之外,Redis还提供一些类数据库的特性,比方事务,HA,主从库。能够说Redis兼具了缓存系统和数据库的一些特性,因而有着丰厚的应用场景。

1、引入 spring-boot-starter-redis

Java全栈工程师【已完结】

2、添加配置文件

Java全栈工程师【已完结】

3、添加cache的配置类

Java全栈工程师【已完结】

3、接下来就能够直接运用了

Java全栈工程师【已完结】

Java全栈工程师【已完结】

Java全栈工程师【已完结】

4、自动依据办法生成缓存

Java全栈工程师【已完结】

其中value的值就是缓存到redis中的key

共享Session-spring-session-data-redis

散布式系统中,sessiong共享有很多的处理计划,其中托管到缓存中是最常用的计划之一,

1、引入依赖

Java全栈工程师【已完结】

2、Session配置:

Java全栈工程师【已完结】

maxInactiveIntervalInSeconds: 设置Session失效时间,运用Redis Session之后,原Boot的server.session.timeout属性不再生效

3、测试

Java全栈工程师【已完结】

登录redis 输入 keys '*sessions*'

Java全栈工程师【已完结】

登录http://localhost:8080/uid 发现会分歧,就阐明session 曾经在redis里面停止有效的管理了。

Java全栈工程师【已完结】

最后留意点:

问题一:如图

Java全栈工程师【已完结】

redis衔接不上,可能你的redis效劳还没起来,若本地没有redis,下载一个

链接:https://pan.baidu.com/s/1dVEcYq 密码:8380

问题二:如图

Java全栈工程师【已完结】

你的redis版本太低了,至少应该是2.8的

上一篇:用了那么久居然没发现firefox快捷键有如此多


下一篇:Spring boot 结合hibernate-validate校验数据