我有一个Grails服务,它是一个相当复杂的单例对象的包装器.我想做一些初始化来在服务启动时填充单例.如果某种init()函数在启动时会被服务自动调用,那会很好,但我没有找到这样的东西.
有干净的方法吗?
Bur*_*ith 31
您可以InitializingBean按照@Saurabh所描述的那样实现,但是在Grails启动过程中会很早启动,所以当它工作时,有些东西还不可用,例如你不能在域类中调用GORM方法,因为那样在bean初始化之后发生.如果InitializingBean还不够,可以调用初始化方法BootStrap.groovy,例如
class BootStrap {
def myService
def init = { servletContext ->
myService.initialize()
}
}
Run Code Online (Sandbox Code Playgroud)
你可以initialize在服务类中调用方法或任何你想要的东西.BootStrap如果您不希望服务类中包含该代码,也可以直接执行初始化工作.
Isi*_*oGH 24
我使用标准的PostConstruct注释:
class MyService {
@PostConstruct
def init() {
// GORM accesible from here
}
}
Run Code Online (Sandbox Code Playgroud)
Sau*_*abh 11
服务器可以实现InitializingBean来进行一些初始化
public class AbcService implements InitializingBean {
public void afterPropertiesSet() throws Exception {
//initialization logic goes here
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15874 次 |
| 最近记录: |