一般的注解,比如常见的 @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),主要的目的是去除代码耦合。具体可参考其他资料。
@Autowired 是 Spring 特有的注解,默认按照类型装配。
@Resou
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 ...
Ubuntu 16.04 LTS 或者 Ubuntu 17.04 下可以通过 PPA 来安装 Cinnamon,感谢维护者
命令如下:
sudo add-apt-repository ppa:embrosyn/cinnamon
sudo apt update && sudo apt install cinnamon
当安装完成之后,Log out 或者 重启,在登录界面选择 Cinnamon 来使用。
我在使用一段时间之后才发现没有安装 Nemo 的插件,以至于右击都没有压缩的选项,通过一下步骤安装 Nemo 以及相关套件。
Read more ...
之前有写过 Git alias 的文章, 不过已经过去了很多时间,现在对 Git 命令越来越熟悉就希望更快的提高输入效率,也越来越感受到 alias 的重要性,不管是直接在 bash 中的 alias 还是 Git 的 alias。所以准备找一些合适的 alias 添加到自己的 gitconfig 文件中长期使用。
添加 alias
使用命令的方式添加
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias
Read more ...