Ambertime

ivicel's thoughts and writings

Spring Security 的使用

1. Spring Security 的开启方式 在 Java Web 中一般使用 Filter 来对请求进行拦截, Spring Security 基于此来对在进入 DispatcherServlet 前对 Spring MVC 进行请求拦截, 进行统一难, 从而决定是否放行 如果使用 web.xml 进行配置, Spring Security 提供了一个 DelegatingFilterProxy 的 Filter 代理器, 只要在 web.xml 中配置该 Filter 如果使用注解方式, 则在配置中加入 @EnableWebSecurity, 该注解会自动生成一个...

MyBatis Generator XML 配置详解

1. 配置文件 固定的文件头, 约束和根结点 1.1...

RTFSC: Flask 的源码阅读(三)

1. 路由的实现 有两种方式来添加路由, 通常使用装饰器来添加, 其内部也是通过第二种 add_url_rule() 方法, 装饰器是一种简洁明了的方式. def add_url_rule(self, rule, endpoint=None, view_func=None, provide_automatic_options=None, **options): # endpoint 默认使用的是函数名 if endpoint is None: endpoint = _endpoint_from_view_func(view_func) options['endpoint'] =...

RTFSC: Flask 的源码阅读(二)

1. 路由派发 由 Flask.full_dispatch_request() 发起路由派发 def full_dispatch_request(self): # before_first_request 的回调 self.try_trigger_before_first_request_functions() try: # signal 注册的回调 request_started.send(self) # before_request 的回调, 在这我们也可以看到 # 只有 before_request 回调中返回 None, 才继续向下派发 rv =...

RTFSC: Flask 的源码阅读(一)

使用自带的单线程 server 看源码 1. 从 WSGI 开始 一个最简单的 Flask 程序 from flask import Flask app = Flask(__file__) @app.route('/') def index(): return 'Hello, world' if __name__ == '__main__': app.run() 在 run() 方法中可以看到调用了 werkzeug.serving.run_simple() 来运行, 传入的的 WSGI 应用就是 self 也就是 Flask 对象. 根据 WSGI 协议, 其必定是一个...