你爲什麼不直接通過電子郵件詢問我們? :-)
我看到XML Lang支持是非常神奇的。有足夠的東西是基於BeanDefinition
和它的attributes
。另外還有一些掛鉤ProxyFactory
和CGLIB
爲lang:property
。
我所看到的JavaConfig是一些Java類包裝的ScriptEvaluator
和RefreshableResourceScriptSource
從Spring Integration:
@ContextConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
public class RefreshableScriptJavaConfigTests {
@Autowired
private Calculator calculator;
@Test
public void testGroovyRefreshableCalculator() {
assertEquals(5, this.calculator.add(2, 3));
}
@Configuration
public static class ContextConfiguration {
@Value("classpath:org/springframework/integration/scripting/config/jsr223/Calculator.groovy")
private Resource groovyScriptResource;
@Bean
public ScriptEvaluator groovyScriptEvaluator() {
return new GroovyScriptEvaluator();
}
@Bean
public Calculator calculator() {
return new Calculator(new RefreshableResourceScriptSource(this.groovyScriptResource, 1000));
}
}
public static class Calculator {
private final ScriptSource scriptSource;
@Autowired
private ScriptEvaluator scriptEvaluator;
public Calculator(ScriptSource scriptSource) {
this.scriptSource = scriptSource;
}
public int add(int x, int y) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("x", x);
params.put("y", y);
return (int) this.scriptEvaluator.evaluate(this.scriptSource, params);
}
}
}
凡Calculator.groovy
是:
x + y
我明白,這是不是這樣它具有靈活性,因爲它具有XML定義中的接口和配置,但至少可以幫助您瞭解我們的位置。
隨時就此事提出JIRA問題,我們將看到我們可以在這裏做什麼。類似@EnableScripting
和@ScriptSource(refreshDelay = 1000)
的Resource
@Bean
方法。
我認爲現在你可以只用@Import
一些XML片段與lang
的定義。
乾杯, 阿爾喬姆
謝謝您的回答,男人! 我沒有通過電子郵件詢問原因1.我認爲這是一個很好的問答公開和可以找到的,2.熱潮,你剛剛得到了+25的代表:)這不是很糟糕,我不得不說,我預計會更糟糕。是的,'@ EnableScripting'就是這樣,我會添加一個功能請求。 – JBaruch 2014-10-06 10:38:38
https://jira.spring.io/browse/SPR-12300幸運號碼:) – JBaruch 2014-10-06 11:18:25