我必須用我的現有的Java域類一春天項目的 Grails項目,我需要配置類型定義。在spring項目中,可以配置LocalSessionFactoryBean的這個屬性 - 但是如何在grails項目中做到這一點?配置性能
配置性能
回答
LocalSessionFactoryBean的Grails版本是org.codehaus.groovy.grails.orm.hibernate.ConfigurableLocalSessionFactoryBean的子類。它註冊爲org.codehaus.groovy.grails.plugins.orm.hibernate.HibernatePluginSupport一個Spring bean作爲
sessionFactory(ConfigurableLocalSessionFactoryBean) {
...
}
讓你有幾個選項。一個是在resources.groovy重新定義豆,保持什麼Grails的配置再加上你的變化,即
sessionFactory(MyCustomConfigurableLocalSessionFactoryBean) {
...
typeDefinitions = ...
}
或者如果可能的話,你可以參考豆和修改自舉:
class BootStrap {
def sessionFactory
def init = { servletContext ->
sessionFactory.foo = bar
}
def destroy = {}
}
它看起來像typeDefinitions需要儘早配置,而工廠bean正在構建SessionFactory,所以選項1可能是您最好的選擇。
另一種選擇是使用彈簧的生命週期回調,例如,實現了BeanPostProcessor
public class CustomBeanPostProcessor implements BeanPostProcessor {
// simply return the instantiated bean as-is
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean; // we could potentially return any object reference here...
}
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if ("sessionFactory".equals(beanName) && bean instanceof ConfigurableLocalSessionFactoryBean) {
ConfigurableLocalSessionFactoryBean sessionFactory = (ConfigurableLocalSessionFactoryBean) bean;
sessionFactory.setTypeDefinitions(...);
}
return bean;
}
}
扔給你resources.groovy
customProcessor(CustomBeanPostProcessor)
這樣你就不必重新定義已經連線到GORM動態查找器等SessionFactory的bean的多數民衆贊成.al。
不錯的建議,問題是postProcessAfterInitialization永遠不會調用名爲sessionFactory的bean或ConfigurableLocalSessionFactoryBean的實例: - ( – 2010-01-21 11:57:54
是否將bean定義添加到您的resources.groovy?我測試了上面的代碼並設置了TypeDefinitions的工作 – 2010-01-21 12:05:58
我發現爲什麼這不適用於我的情況:sessionFactory無法實例化,因爲它加載映射信息時失敗 - 因爲它不知道配置的UserType 所以我需要配置這些TypeDefinitions之前sessionFactory是實例化的 – 2010-01-21 23:24:58
- 1. 配置性能/特性
- 2. TensorFlow:多GPU配置(性能)
- 3. Struts2配置和性能
- 4. 配置單元性能
- 5. 「使用」型配置性能
- 6. django的Apache配置性能
- 7. uWSGI/NGINX性能配置
- 8. 配置捕捉性能
- 9. Nginx和sysctl配置 - 性能設置
- 10. 配置與屬性配置
- 11. Sitecore性能優化 - Sitecore配置,IIS配置
- 12. 在Python中的性能配置文件
- 13. 配置單元性能聯盟全部
- 14. 如何配置WPF 4.5 UI性能?
- 15. 如何編輯鎖定性能:配置
- 16. 配置單元查詢性能不佳
- 17. 的php.ini配置文件掃描性能
- 18. 關於GAE CPU實例配置/性能
- 19. 提高配置單元jdbc的性能
- 20. Groovy的性能/多字配置
- 21. 配置文件性能問題
- 22. nginx/haproxy性能與許多行配置
- 23. 在windows上高性能地配置redis
- 24. 命名配置屬性功能
- 25. Spring雲配置服務器。在性能
- 26. 春XML +性能配置Java類
- 27. 配置單元性能增加
- 28. 如何配置Lambda函數性能?
- 29. java配置塊 - 配置塊的屬性
- 30. Javascript配置屬性
這似乎是正確的方式來實現我想要的,但我不得不承認,我的Grails知識不如我的春天的知識 - 所以你可以給我一個關於如何「重新定義資源bean」的小費。常規,維護Grails配置加上您的更改「? – 2010-01-21 09:07:19