去年年底接触了springboot框架,这两天复习了一遍,主要是跟着老卫博客系统这个课程学习的。
springboot介绍:总的感觉springboot就是基于spring开发的一套框架,好处就是不用配置复杂的依赖包,xml的一些文件, 这是我感觉最深的一点,想用什么架包这些直接在Maven或者gradle配置文件中导入名称版本就好,maven和gradle会自动帮你处理。
下面我记录一下我自己的一些心得体会:
我的开发工具是eclipse,个人一直用这个,用IDEA不太习惯,在IDEA是直接可以选择生成springboot项目框架的,在eclipse中也是可以,但是要下载插件,比较麻烦,可以在https://start.spring.io/这个网页中生成一个初始化的springboot项目。然后引入到eclipse。
大体的框架差不多这个样子(eclipse),里面具体的内容就不介绍了
启动类:
启动springboot的几种方式(我是gradle的)
(1):直接ide里面启动,application.java类直接右键运行java application
(2):在cmd中gradlew build建立项目,在lib下生成一个jar文件,然后执行命令:java -jar xxx.jar
(3):直接在cmd中执行gradle bootRun
首先介绍下thymeleaf,这个也没什么好介绍,这就是和jsp差不多的东西,这是这个东西和springboot比较适配,只要做前端数据展示用的模板引擎。
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中,总的来说其实就是dao层,主要做数据库的交互。
在springboot中引入jpa架包直接简化了以前的增删查改的代码。
具体实现:
第一步:引入jpa架包,以及数据库的依赖
第二步:编写dao类,如下图所示,直接是集成crudRepository类就好,
需要注意的是:实体类中的需要添加相应的注释。
第三步:application文件中加入数据库配置信息
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
ElasticSearch的数据存储介绍:es建索引写入数据,数据最先是存在内存buffer里的,然后再刷入到lucene的底层文件segment中;写入segment完毕后再执行refresh操作,refresh操作后,数据将commit到磁盘中。数据刷入到了磁盘,就可以执行查询操作了。
过程简单描述如下:内存buffer-->segment-->refresh-->磁盘
(1)引入ES依赖
(2)数据domain注释
(3)编写查询ES方法,继承ElasticsearchRepository,可以直接根据方法名的规则查询数据,下图中的方法名就是代表
查询标题或者摘要或者内容来出现不重复的数据
(4)配置application文件。配置es服务器的信息
(5)启动ES服务器
这个主要是前端的框架,主要是为了美化页面,这里不多说,主要是引入一些css,js等内容
Spring Security,这是一种基于 Spring AOP 和 Servlet 过滤器的安全框架。它提供全面的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权。
(1)引入架包,因为项目中使用到thymeleaf,所以有一个Spring Security和tyhmeleaf的结合包
(2)编写安全配置类
(3)在页面中进行相关代码设置,比如是否已经有用户登录等等
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
(1)引入mongodb架包
(2)设置文件服务器配置
(3)具体的实现代码就不介绍了
具体可以见https://gitee.com/waylau/mongodb-file-server
(4)启动mongodb服务器,mongodb配置需要设置data目录
基于老卫的博客系统基本是基于上面的技术开发的,这里不多做介绍,这篇文章主要是为了了解springboot是什么,具体的开发流程,一些常用的开发框架如何与springboot结合这些方面。