Springboot入门实战个人学习笔记1-论坛项目

BV1r4411r7au/AV65117012-码匠笔记

问题1:创建springboot时read timed out
解决:重复关闭/启动防火墙操作,总之确保check connect成功。



管理所有的包以及其依赖



自动生成的git的忽略文件,记录不想推送到github上的。


放置各种.java文件


springboot内置了tomcat,这个文件是启动文件,免除了生成war,部署tomcat等一系列操作,所以调试时只需要运行这个文件即可(含main方法)。

spring用容器管理beans,springboot有一个默认的方式即是application会加载同一级或下一级下所有的带有注解的文件


放置静态文件,下面的templates放置html等web文件,.properties文件项目的配置文件、基本路由、端口号、自定义等配置。



https://spring.io/guides:手把手教咱利用springboot写各种东西。


该方法从浏览器获取参数信息,model为内置的一个类;
return "greeting" 会在templates中寻找同名文件,然后解析渲染呈现出来


问题2:依赖添加失败
解决:在设置中maven》runner下勾选"delegate IDE build/run actions to Maven

idea快捷键:


根据提示文档创建有Github登录API的app


根据文档提示编写前两步:获取从github处返回的code,之后解析code编写access_token返回github.

关于github授权登录流程文字叙述:
1-用户点击登录按钮的同时向指定网址发送携带指定信息的请求。
2-github携带参数code+state重定向到预先设计好的"http://***/callback"网址(我们的网址)。
3-在对应界面我们结合需要的参数以及刚刚拿到的code+state向github指定网址发送请求以取得令牌access_token
4-在官网返回access_token后我们即可用该令牌代替用户向github网址发送请求以取得用户的相关信息保存在本地。



application.properties配置

可以在配置文件中配置常量,然后再用注解@Value(${})赋予到对应的变量

问题3:GitHub最后一部使用令牌access_token登录时始终报错”Must specify access token via Authorization header“或”Requires authentication“
解决:按照官网提示将其作为header中的参数进行传输,需要注意的是token后面有个空格(踏马的,就是这个空格让我坐了一个晚上(╬▔皿▔)╯)




登录成功以后保持登录态

cookies不能跨域,所以说每个cookies有与之对应的域名、路径、过期时间(可以保存的时间)。cookies的name、Value参数最为重要。每次一个请求地址。

cookies浏览器保持,与服务器端同步会话

session是在httpservletRequest中拿到的,springboot自动将上下文的request传到方法中供使用


java的session_id,如果不手动指定cookies的key(名字)的话会手动生成一个key以及其Value,其做法便是将JSESSIONID拼到请求头里面发到服务器端,发到服务器端后通过cookie的key去找request_session里面对应的session,session的对象里面本身就有一个JSESSIONID的ID。


重定向




idea中自动集成了各种数据库,且可以手动画表



cookie通过resquest获取,并通过response传递到浏览器



flyway Migration:自动将多个用户的数据库版本集成为一个数据库版本


flyway Migration帮助执行sql脚本,所以需要先把建立好的数据库删掉


通过不断创建新的migration让flyway migration自动管理数据库实现多人共同管理(每个人新写的migration在执行后都有对应的码做标记)




在编写前端页面的时候可以通过检查功能一边修改一便调整,最后复制即可。

model常用于在前端和后端之间传输信息:后端通过设值的方式向前端传。




Lombok:

可以通过@Data注解简化代码量,自动生成set、get方法,但在IDEA上需要Lombok插件




Service中间层的作用是使得Spring会自动管理这个类,如图所示,在里面可以同时使用QuestionMapper、UserMapper-起到组装的作用(这两个mapper对应向两个不同的数据库做操作)。当一个请求需要组装User-question的时候便需要service(习惯将中间层这么叫)




jsonfast会自动将网络中收到的json对象的中的_分割方式转换为驼峰分割方式


此处是关于html中时间的展示方法,其格式受sql的语法控制




Developer Tools:自动部署工具

Spring热部署:两个classloader,一个加载不变的类,另一个加载变化的类,项目启动的时候新的自动加载,老的回收

JRebel热部署:把每个变化的字节码做热替换,所以不会重启项目,但会收费



ctrl-shift-alt-?

将这两次此处勾选,完成之后,点击build,便可以实现自动热部署(页面的样式变化不会重启服务),但是页面自动刷新还需要另装插件


LiveReload插件




拼接语法



问题4:

页面的交互效果是依赖于jqurey库的,jquery里面封装了很多方便的方法,以便我们操作js、html中的一些属性时候更方便,不需要html的原生方法.

解决:将官网的文件拷贝一份到js目录下,并在html中引用。



上面是js原生方法,下面的是jquery的方法





thymeleaf支持将模块分离、封装为方法,以供调用,如此处便是将

你可能感兴趣的:(Springboot入门实战个人学习笔记1-论坛项目)