论坛建站
Categories:
学点有的没的,以加深对于网络世界的理解。
Spring Boot
1. 创建
在Intellij IDEA中新建项目,使用Spring Initializer创建即可。
名称最好为网址的倒序排列。
2. 入门
参考spring.io中Guides栏下的Serving Web Content with Spring MVC进行配置。
主要注意pom.xml
中dependency
的添加,controller
的创建以及templates
中html的添加。
### Bootstrap
参考[bootstrap v3](https://v3.bootcss.com/components/)中各组件的使用,以及[bootstrap 栅格系统](https://v3.bootcss.com/css/#grid)。
在 https://v3.bootcss.com/getting-started/#download 中直接下载用于生产环境的bootstrap。
把这些文件放至`static`目录下。
按照 https://v3.bootcss.com/getting-started/#download-cdn 的方式在html中部署css和js文件,路径应为`css/`或者`js/`。
拷贝所需组件的代码至html文件。
3. 登录
参照https://docs.github.com/en/developers/apps/building-oauth-apps来使用Github登录。
在Developer setting
中创建OAuth应用。
在登录按钮处按照https://docs.github.com/en/developers/apps/building-oauth-apps/authorizing-oauth-apps的GET部分来填写href
,其Parameters
使用?&
的组合传入。
创建controller
来接收callback
的数据(包含code和state)。
这里使用OkHttp来POST。需要一个DTO
(需要POST
的参数以及相应的get\set方法)和一个Provider
(创建一个方法来调用OkHttp
)。Json依赖可以使用Fastjson
,可在https://mvnrepository.com/里查找所需库并按Maven
来添加dependency
。
在controller
中调用Provider
和DTO
。
再通过access_token
GET接入API。同样可以构造DTO
(DTO
的内容选择需要GET
的参数内容)和Provider
(Provider
可以共用,因为是同一个过程的不同步骤,有些变量会重用)。使用JSON.parseObject
来将String按照DTO的形式来切分。
基本流程:GET获取code -> POST获取的code来换取AccessToken -> 使用AccessToken来GET用户信息
P.S. DTO用来传递网络中的数据结构
4. Session&Cookie
HttpServletRequest用来处理Http请求,获取session并将得到的用户信息写入session以保持登录态。
session信息和前端页面的绑定通过index.html的修改实现,需要根据dependency
依赖的引擎所支持的语法来改写前端页面。
“redirect:/“可以重定向至首页。
5. MySQL
常用语句:增(CREATE、INSERT INTO)、删(DELETE)、查(SELECT)、改(UPDATE)
在此处使用H2数据库。通过MVN引入的方式参考H2 Database Engine。
在IDEA中的右侧边栏Database
,点击+
选择数据源,配置方式参考Quickstart。在此基础上右键创建的database来创建表和列。
6. MyBatis
参考mybatis-spring-boot-autoconfigure来引入MyBatis。
参考官方文档来添加支持。
在mapper文件夹下创建UserMapper,在model文件夹下创建User,mapper用来存放映射对应SQL操作的方法,model用来存放程序内部交换的数据结构,
application.properties
server.port 指定端口
可以任意指定关键字,使用时在@Value中替换即可。适用于当前环境与开发环境不一致的路径,便于快速修改。
Spring @
@Component
@Autowired
@Value("${}")
@Controller
@GetMapping()
快捷键
ctrl alt v 快速创建变量
alt insert 快速创建get\set等方法
alt enter 引入所需的包(标红时使用)
ctrl 鼠标左键 快速查看对应的定义
ctrl alt o 去除未使用的引入包
ctrl n 检索
shift enter 快速换行