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下载
最代码最近下载分享源代码列表最近下载
wozaini LV111月9日
月亮月亮星星星星星星
2985225214 LV81月3日
月亮月亮
yu7510 LV131月2日
月亮月亮月亮星星
jekins LV32018年12月29日
星星星星星星
木樨的味道 LV42018年12月28日
月亮
qiwenliang LV92018年12月12日
月亮月亮星星
yayaba LV22018年12月9日
星星星星
1143099300 LV12018年12月7日
星星
wangyoung LV92018年12月7日
月亮月亮星星
liusingqi LV12018年11月22日
星星
最代码最近浏览分享源代码列表最近浏览
panqiuhong LV5昨天
月亮星星
291807852昨天
暂无贡献等级
edpwyg LV12昨天
月亮月亮月亮
熊爸舔虾 LV1昨天
星星
lsq54365 LV1昨天
星星
talos2018 LV3昨天
星星星星星星
吉拉拉1月15日
暂无贡献等级
zxfghsq LV11月15日
星星
13627251857 LV11月15日
星星
5342008 LV11月15日
星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友