学习springboot项目的一些心得-----老卫的博客系统

Posted 梦回的承诺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习springboot项目的一些心得-----老卫的博客系统相关的知识,希望对你有一定的参考价值。

去年年底接触了springboot框架,这两天复习了一遍,主要是跟着老卫博客系统这个课程学习的。

springboot介绍:总的感觉springboot就是基于spring开发的一套框架,好处就是不用配置复杂的依赖包,xml的一些文件, 这是我感觉最深的一点,想用什么架包这些直接在Maven或者gradle配置文件中导入名称版本就好,maven和gradle会自动帮你处理。

下面我记录一下我自己的一些心得体会:

1:第一点是初始化springboot

我的开发工具是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

 

2:基于thymeleaf的介绍

首先介绍下thymeleaf,这个也没什么好介绍,这就是和jsp差不多的东西,这是这个东西和springboot比较适配,只要做前端数据展示用的模板引擎。

 

3:JPA集成

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中,总的来说其实就是dao层,主要做数据库的交互。

在springboot中引入jpa架包直接简化了以前的增删查改的代码。

具体实现:

第一步:引入jpa架包,以及数据库的依赖

第二步:编写dao类,如下图所示,直接是集成crudRepository类就好,

 

需要注意的是:实体类中的需要添加相应的注释。

第三步:application文件中加入数据库配置信息

4:ElasticSearch搜索(NOSQL)

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服务器

 

5:关于 bootstrap

这个主要是前端的框架,主要是为了美化页面,这里不多说,主要是引入一些css,js等内容

 

6:spring security

Spring Security,这是一种基于 Spring AOP 和 Servlet 过滤器的安全框架。它提供全面的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权。

(1)引入架包,因为项目中使用到thymeleaf,所以有一个Spring Security和tyhmeleaf的结合包

(2)编写安全配置类

(3)在页面中进行相关代码设置,比如是否已经有用户登录等等

 

7:关于老卫的文件上传服务器,基于mongodb实现

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结合这些方面。

以上是关于学习springboot项目的一些心得-----老卫的博客系统的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot 学习笔记心得异常处理机制

老工程师对嵌入式学习之51单片机的一些心得体会

学习springcloud的一些心得体会——老卫的天气预报系统

从零开始-使用IDEA创建SpringBoot项目

SpringCloud学习心得

SpringBoot 学习笔记心得拦截器配置使用