1、添加注解的种类
在Scala中,我们可以为类、方法、字段、局部变量、参数、表达式、类型参数以及各种类型定义添加注解,就和Java一样
@Entity class Student
@Test def play() {}
@BeanProperty var username = _
def doSomething(@NotNull message: String) {}
// 同时添加多个注解,注解的先后顺序是没有影响的
@BeanProperty @Id var username = _
@Entity说明这个class是实体类,并且使用默认的orm规则,即class名即数据库表中表名,class字段名即表中的字段名
如果想改变这种默认的orm规则,就要使用@Table来改变class名与数据库中表名的映射规则,@Column来改变class中字段名与db中表的字段名的映射规则
@Test 测试
@BeanProperty 自动生成Java的getter和setter方法
@NotNull 参数不为Null
@Id 唯一的
2、构造器注解
构造器注解,需要在主构造器之前,类名之后,且需要加括号(如果注解不带参数的话),如果注解有参数,则写在注解括号里
class Student @Inject() (var username: String, var password: String)
3、表达式添加注解
为表达式添加注解,在表达式后添加冒号,然后是注解本身
(map1.get(key): @unchecked) match {...}
@ unchecked 不受检的
4、泛型添加注解
class Student[@specialized T]
5、实际类型添加注解
String @cps[Unit]
6、针对实际类型的注解
针对实际类型的注解,应该放置在类型名称之后
def country:String @Localized
在这里,我们为String类型添加了注解,该方法返回的是一个本地化了的字符串