Ambertime

ivicel's thoughts and writings

Spring Flasky 开发(一)

1. 项目说明 Flasky 是 Flask Web Development 里的一个实例项目, 原项目是使用 Python 开发了, 一个类似微博的小型项目, 我用 Spring Boot 重写了一个 实现了里面提到了主要功能: Post 分页, 及在登录后查看关注的人发的 Post 帐号注册, 登录, 发 Post, 对他人 Post 的评论 个人信息页 权限系统, 帐号角色分配 邮件发送系统, 通过邮件激活帐号, 重置密码 关注, 取消关注功能 Rest API 2. 主要依赖 Spring Boot Spring Security 用于权限控制, 登录 Spring...

博客主题的修改

这个博客是使用 Pelican 搭建了, Pelican 是一个使用了 Python 写的一个静态博客生成框架, 里面使用了 Jinja2 作为模版 最近重新修改了博客主题, 使用了 HuxPro 里的样式主题, 原主题里使用的是 Jekyll 生成, 不过其模版写法和 Jinja2 差不多, 自己稍微修改了下, 用 jinja2 重新写了一个 由于 Pelican 生成的目录结构不同, 其针对 article, archive, category, page, tag 都可以生成单独的页面, 所以在一些内嵌的页面里 (archives), 取巧的使用 ajax 来请求刷新 tag...

数据库事务并发问题及隔离行为

1. 数据库事务知识 1.1 数据库事务的 4 个基本特征: ACID 原子性(Atomic): 一个事务是不可分割的整体, 其内的操作要么全部成功, 要么全部失败. 一致性(Consistency): 事务确保数据库从一个一致状态转变到另一个一致的状态. 一致状态指的是数据库应满足完整性约束. 比如 A+B 有 1000 元, 在 A 转帐到 B 300 后, 事务完成时, A + B 仍是 1000 元, 这保持了一致性 隔离性(Isolation): 在多并发执行事务时, 事务与事务之间是隔离开执行的. 持久性(Durability):...

Spring 数据库事务处理

1. 事务的传播行为 事务的传播行为是 Spring 对数据库事务添加的特定功能, 指的是当方法 A 调用另一个方法 B 时, B 事务中所采取的不同策略的行为, 比如新建事务, 挂起事务等. 事务的传播注解修饰的是方法 B 自己, 当被别的方法调用时才起的作用, 而不是方法内起作用 1.1 Spring 中七种事务传播行为 事务传播行为类型 说明 PROPAGATION_REQUIRED 1. 如果当前没有事务, 则新建一个事务2. 有的话就则加入到这个事务中 PROPAGATION_SUPPORTS 有则沿用, 没有也不新建1. 如果当前存在事务, 则沿用当前事务 2....

Spring POST 重定向接收错误信息(BindingResult)

1. POST 请求的错误信息重定向 在发送 POST 之后, 如果遇到错误, 我们经常会重定向(GET)回到原页面, 而不是直接返回页面, 这样做是为了避免如果我们点击浏览器刷新按钮时, 会再次发送 POST 请求. 重定向之后, 我们需要获得前面的错误信息. 使用 @ModelAttribute 注解来修饰 RequestMapping 方法的参数, ModelAttibute 注解实际上是接收请求参数, 添加到 Model 中, 在取出后自动删除. 需要注意的几点: 在 GET 处理方法中, 因为我们在渲染的 html/jsp 页面中使用了 User 对象,...