似乎无法找到关于此的信息,如果你有一些,请指向正确的主题/帖子/链接!
我有一个服务,让我们说它叫做'SomeServiceWithAReallyLongNameICannotChange'.当然,使用服务的正常方法是允许grails使用typless或typed表示法注入它们:
class SomeClass{
//...
def someServiceWithAReallyLongNameICannotChange
//...
}
Run Code Online (Sandbox Code Playgroud)
- 要么 -
class SomeClass{
//...
SomeServiceWithAReallyLongNameICannotChange someServiceWithAReallyLongNameICannotChange
//...
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是将服务重命名为更短的内容,但仅限于我正在使用它的地方,因为我无法更改实际服务的名称.我尝试使用'as'表示法,就像使用import一样,我尝试在类型化声明中更改名称,但这些东西似乎都不起作用.这可能吗?
我试过这样的事情:
class SomeClass{
//...
def someServiceWithAReallyLongNameICannotChange as SS
//and I tried
def SomeServiceWithAReallyLongNameICannotChange SS
//no joy
//...
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
解决方案是按类型使用autowire.默认情况下,grails按名称使用autowire,因此您必须使用与bean相同的名称声明服务.
这是一个例子
class FooController {
boolean byName = false //set autowire by type
SomeReallyLongService service
}
Run Code Online (Sandbox Code Playgroud)
更新:甚至可以使用Autowired注释和限定符.
例:
class MyController {
@Autowired
@Qualifier("myServiceWithDifferntName")
def someService
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2435 次 |
| 最近记录: |