Python 很重要的一个概念 module,用来组织代码结构。
import 导入搜索的路径
代码的 home 路径
PYTHONPATH 目录(如果存在的话)
标准库路径
.pth 文件中配置的路径(如果存在的话)
最终,这些路径都会存在 sys.path 中,是一个保存着一系列搜索路径的 list。
>>> import sys
>>> sys.path
导入工作流程
在路径中找到导入的模块
编译
运行
Package
一个目录的 Python code 被称为
Read more ...
从 WizNote 中整理。
POJO, Plain Old java object, 最简单的 Java 对象
[[Dependency Injection]] 带来的最大好处,松耦合,如果一个对象只通过接口(而不是具体实现或初始化过程)来表明依赖关系,那么这种依赖就能够在对象本身毫不知情的情况下,用不同的具体实现进行替换。
AOP aspect-oriented programming, 面向切面编程允许将遍布应用各处的功能分离出来形成可重用的组件
依赖注入让互相协作的软件组件保持松散耦合,而 AOP 则是让遍布各处的功能分离出来形成可重用的
Read more ...
一般的注解,比如常见的 @Override 是 Java 从 1.5 版本开始引入,注解一般用来对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等等进行注解,他的作用一般分为如下四个方面:
生成文档
编译检查,通过注解让编译器在编译期间进行检查校验
编译时动态处理,编译时通过注解标示进行动态处理,比如生成代码
运行时动态处理,反射注入实例等等
一般的注解可以分为三类:
Java 自带的注解,包括 @Override @Deprecated 等等
元注解,用于定义注解,包括 @Retention @Targe
Read more ...
这篇文章总结一下 Python 的内置类型。
类型
Object type
Example literals/creation
Numbers
1234 , 3.1415 , 3+4j , Decimal , Fraction
Strings
‘spam’ , “guido’s” , b’a\x01c’
Lists
[1, [2, ‘three’], 4]
Read more ...
https://www.google.com/foobar/?eid=sfeTWdGPBIac8QXcxpXgAQ&usg=AG3vBD082_C21k4vEcaG4KspC-1eGqU7KA
Minion Labor Shifts
===================
Commander Lambda's minions are upset! They're given the worst jobs on the whole space station, and some of them are starting to complain
Read more ...
2017-08-16
为了实现依赖注入 DI 而引入,Java 提供 javax.annotation.Resource , javax.inject.Inject 注解,Spring 框架提供了 org.springframework.beans.factory.annotation.Autowired 。依赖注入(Denpendency Injection,DI), 控制反转(Inversion of Control, IoC),主要的目的是去除代码耦合。具体可参考其他资料。
使用
Spring 注入的方式有多种,可以写在 field 上,可以写在 setter 方法
Read more ...
Spring的Interceptor(拦截器)与Servlet的Filter有相似之处,都能实现权限检查、日志记录等。不同的是:
Filter
Interceptor
Summary
Filter 接口定义在 javax.servlet 包中
接口 HandlerInterceptor 定义在org.springframework.web.servlet 包中
Filter 定义在 web.xml
Read more ...
@Component, @Service, @Controller 和 @Repository 四个注解在 Spring 中等同于在XML中定义 <bean> 标签,他们注解的对象都是 Spring 的 Bean。@Service,@Controller 和 @Repository 本质上就是 @Component。 @Controller,@Service,@Repository 他们在功能上几乎相同,主要的功能是用来给应用分层。
@Controller: 处理对应的请求,对应表现层(控制层),使用 @RequestMapping
Read more ...
一般在开发网站时使用 session 或者 cookie 来处理用户登陆等等权限问题,而在移动应用中要验证用户身份采用登录时给用户生成一个 token(令牌)的方式。每次用户发出需要身份认证的请求时,就需要验证一次 token 是否有效,无效的情况包括 token 无法被解析等。在向不可信环境发送数据时,确保数据经过签名,使用只有自己知道的密钥来签名数据,加密后发送,在取回数据时,确保没有人篡改过。
Python 有个 itsdangerous 包含了很多安全校验 token 验证相关的方案。 itsdangerous 就是这样一个签名校验的工具,内部
Read more ...
能否使用 == 来针对 enum 来比较?
答案是:YES, 枚举谨慎的实例化管理允许使用 == 来进行比较,JLS 8.9 Enums 中有Java 语言的规范定义:
枚举类型除了定义时的枚举常量外没有其他实例
如果显示的实例化枚举类型,会产生编译时异常。final clone 方法保证了 Enum 变量不会被 clone, 序列化的机制也保证了重复的实例在反序列化时不会创建额外的枚举变量。通过反射实例化 Enum 类型是被禁止的。所有这四种方式确保了 enum 类型不存在额外的实例,除了定义时的常量
因为每一个枚举常量只有一个实
Read more ...