從JDK開始Java就擁有了一種新特性Annotations想必Java老手們對它並不陌生吧在各大框架比如SpringHibernate等中均提供了自己的Annotations供大家使用Java+使用Annotations是十分平常的事情因為Annotations本身就是Java的一種特性但基於Java的動態語言要使用Annotations就比較困難了目前只有Groovy能夠做到這點
接下來以使用Guice為例看一下在Groovy中如何使用Annotations其實跟在Java中使用Annotations沒什麼兩樣 :)
注意請將guicejar和aopalliancejar加到classpath中如果您嫌麻煩可以將這兩個Jar文件放到<GROOVY_HOME>\lib目錄下
import comgoogleinject *
interface LoginService {
boolean check(String name String password)
}
@Singleton
class LoginServiceImpl implements LoginService {
boolean check(String name String password) {
if (name == Daniel && password == ) {
return true
}
return false
}
}
class LoginController {
@Inject
private LoginService loginService
public void setLoginService(LoginService loginService) {
this loginService = loginService
}
public void execute() {
String name = Daniel
String password =
login(name password)
}
public void login(String name String password) {
boolean result = loginServicecheck(name password)
if (result) {
println Welcome $name
} else {
println Sorry the name or password inputted is invalid!
}
}
}
class LoginModule implements Module {
void configure(Binder binder) {
binderbind(LoginService)
to(LoginServiceImpl)
in(ScopesSINGLETON)
}
}
def loginInjector = GuicecreateInjector( new LoginModule())
def loginController = loginInjectorgetInstance(LoginController)
loginControllerexecute()
運行結果
Welcome Daniel
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26196.html