似乎找不到关于这个的信息,如果你有一些,请告诉我正确的帖子/帖子/链接!
我有一个服务,比方说它叫'SomeServiceWithAReallyLongNameICannotChange'.当然,使用服务的正常方式是允许grails使用无类型或类型化的表示法注入它们:
class SomeClass{
//...
def someServiceWithAReallyLongNameICannotChange
//...
}-或者--
class SomeClass{
//...
SomeServiceWithAReallyLongNameICannotChange someServiceWithAReallyLongNameICannotChange
//...
}我想要做的是将服务重命名为更短的名称,但仅在我使用它的地方,因为我不能更改实际服务的名称。我试着像使用导入一样使用'as‘表示法,也试着在类型化声明中更改名称,但这些方法似乎都不起作用。这个是可能的吗?
我尝试了这样的东西:
class SomeClass{
//...
def someServiceWithAReallyLongNameICannotChange as SS
//and I tried
def SomeServiceWithAReallyLongNameICannotChange SS
//no joy
//...
}谢谢你的帮忙!
发布于 2012-02-10 12:11:40
解决方案是按类型使用自动配线。默认情况下,grails按名称使用自动导航器,因此您必须使用与bean相同的名称来声明服务。
下面是一个例子
class FooController {
boolean byName = false //set autowire by type
SomeReallyLongService service
}自动布线。
这是here的解释
更新:甚至可以将自动连接注释与限定符一起使用。
示例:
class MyController {
@Autowired
@Qualifier("myServiceWithDifferntName")
def someService
}https://stackoverflow.com/questions/9217031
复制相似问题