fengzf的gravatar头像
fengzf2018-01-23 09:44:02

SpringBoot入门整合开发java Web项目实例

项目描述

非原创,自己公司准备换SpringCloud微服务,最近正在学习这方面的东西,总结一下通俗易懂的资料,分享一下。

运行环境:

jdk8+mysql+IntelliJ IDEA+maven

项目技术

springboot+maven+Hibernate+thymeleaf

数据库文件

链接: https://pan.baidu.com/s/1qZVl4Qw 密码:2ngr

链接: https://pan.baidu.com/s/1nxqqvsX 密码: cc4r

项目截图

SpringBoot入门整合开发java Web项目实例

一、json 接口开发

在以前的spring 开发的时候需要我们提供json接口的时候需要做的配置

1.添加 jackjson 等相关jar包

2.配置spring controller扫描

3.对接的方法添加@ResponseBody

就这样我们会经常由于配置错误,导致406错误等等,spring boot如何做呢,只需要类添加@RestController即可,默认类中的方法都会以json的格式返回

SpringBoot入门整合开发java Web项目实例

二、自定义Filter

Spring Boot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,并且我们可以自定义Filter

两个步骤:

1.实现Filter接口,实现Filter方法

2.添加@Configuration 注解,将自定义Filter加入过滤链

SpringBoot入门整合开发java Web项目实例

三、自定义Property

配置在application.properties

SpringBoot入门整合开发java Web项目实例自定义配置类

SpringBoot入门整合开发java Web项目实例测试(这里要首先把redis服务起来,其他地方有用到redis,不起会报错,保证数据库连接正确)

SpringBoot入门整合开发java Web项目实例SpringBoot入门整合开发java Web项目实例

测试通过

四、数据库操作

1、添加相jar包

SpringBoot入门整合开发java Web项目实例2、添加配置文件

SpringBoot入门整合开发java Web项目实例

 

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的


打赏

已有1人打赏

最代码官方的gravatar头像

文件名:spring-boot-web.zip,文件大小:98.519K下载
最代码最近下载分享源代码列表最近下载
xiaoche117 LV1610月19日
太阳
wqeen120 LV19月22日
星星
ffffffffff LV29月10日
星星星星
123456nty LV248月23日
太阳月亮月亮
李东曙 LV118月9日
月亮月亮星星星星星星
baoziwa LV107月30日
月亮月亮星星星星
郑志敏 LV77月16日
月亮星星星星星星
sinbero LV66月9日
月亮星星星星
sgm123456 LV136月2日
月亮月亮月亮星星
limangguo LV43月26日
月亮
最代码最近浏览分享源代码列表最近浏览
hmz1994 LV110月22日
星星
QIANGNINGNING LV610月21日
月亮星星星星
xiaokang1 LV610月20日
月亮星星星星
a1293450085 LV910月20日
月亮月亮星星
kruisu LV110月20日
星星
cuibaoke1111 LV210月20日
星星星星
暂无贡献等级
467277 LV1310月18日
月亮月亮月亮星星
773977962 LV310月16日
星星星星星星
210173313 LV510月15日
月亮星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友