个人技术总结
Spring Boot Web初步
1.技术概述
Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架
2.技术详述
SpringBoot Web开发非常简单,包括json输出、自定义filter、p****roperty、d****ata操作等。
工具:Eclipse
项目工程:maven工程
项目结构图
搭建步骤
- 添加pom.xml文件
- 添加配置文件
- 添加实体类和Dao
- DAO类
- Controller类
只需要类添加 @RestController 即可,默认类中的方法都会以json的格式返回。
- 启动类Application
自定义过滤器
我们常常在项目中会使用filters用于记录调用日志、排除有XSS威胁的字符、执行权限验证等等。
-
实现Filter接口,实现Filter方法。
-
添加 @Configuration 注解,将自定义Filter加入过滤链。
配置类使用
在web开发的过程中,我们经常需要自定义一些配置文件,如何使用呢?
配置在application.properties中
com.neo.title=码农新锐
com.neo.description=分享技术
配置类
配置类的应用
Spring Data Repositories介绍
让我们从 JpaRepository 开始 - 它扩展了PagingAndSortingRepository,反过来又扩展了CrudRepository。
其中每个接口都定义了自己的功能。
因此,由于这种继承关系,JpaRepository包含CrudRepository和PagingAndSortingRepository的完整API 。(通过下面图可以看到继承关系)
JpaRepository接口
-
findAll() - 获取实体的列表。
-
findAll(...) - 获取实体的列表,并使用提供的条件对它们进行排序。
-
save(...) - 批量保存。
-
flush() - 刷新对数据库的所有挂起更改。
-
saveAndFlush(...) -保存实体并立即刷新更改。
-
deleteInBatch(...) -删除一个可迭代的实体。在这里,我们可以传递多个对象来批量删除它们。
显然,上面的接口延伸
PagingAndSortingRepository这意味着它有存在于所有方法CrudRepository。
CrudRepository接口
-
save(...) - 在这里,我们可以传递多个对象以批量保存它们。
-
findOne(...) - 根据传递的主键值获取单个实体。
-
findAll() - 获取数据库中所有可用实体的Iterable。
-
count() - 计算表中总实体的数量。
-
delete(...) - 根据传递的对象删除实体。
-
exists(...) - 根据传递的主键值验证实体是否存在。
这个接口看起来非常通用和简单,但实际上,它提供了应用程序所需的所有基本查询抽象。
PagingAndSortingRepository接口
该接口提供了一个方法findAll(可分页可分页),这是实现分页的关键。
因此,我们假设要显示按age排序的结果集的第一页,升序,每个不超过五个记录。这是我们使用PageRequest和Sort定义实现此目的的方法:
将可分页对象传递给Spring数据查询将返回有问题的结果
(PageRequest的第一个参数从零开始)。
3.问题与解决
SpringBootWeb框架搭建时遇到路径问题?
这里需要注意Application启动类的位置,它的位置决定了它开启的时候是否能扫描bean、controller等,它主要扫描它所在的包目录及子目录。
4.技术总结
spring boot设计的目的就是为了简化基于spring的开发,开启各种插件配置。之前开发springmvc或者ssh,都需要手动配置很多文件,以及解决各种maven jar冲突,这不但配置繁琐,而且调试冲突问题花的时间很多。spring boot能够引入jar 依赖,就能快速建立项目并正常运行,目前spring boot的更新速度比较快。spring boot是下一代javaweb框架,是spring cloud微服务的基础。
5.参考文献
1.spring boot学习总结 作者: 金麟十三少