Neden bize doğrudan e-posta ile sormuyorsunuz?
XML Lang desteğinin relly magic olduğunu görüyorum. BeanDefinition
ve attributes
dayanan yeterli şeyler var. Ek olarak, lang:property
için ProxyFactory
ve CGLIB
ile bazı kancalar vardır.
x + y
o kadar olmadığını biliyoruz:
@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
geçerli:
Ne JavaConfig için bkz Spring Integration den ScriptEvaluator
ve RefreshableResourceScriptSource
için bazı Java sınıfı sarıcı XML tanımından arayüzler ve yapılandırma ile göründüğü kadar esnektir, ancak en azından nerede olduğumuzu görmenize yardımcı olacaktır.
Konuyla ilgili bir JIRA sorunu bildirmekten çekinmeyin ve burada neler yapabileceğimizi göreceğiz. @EnableScripting
ve @ScriptSource(refreshDelay = 1000)
gibi bir şey Resource
@Bean
yönteminde.
Şu an için lang
tanımları içeren bazı XML parçacıklarını yalnızca @Import
kullanabilirsiniz.
Alkış, Artem
sağol! E-posta nedeni ile ben sormadım 1. Bence kamuoyu ve bitirilebilir olmak için iyi bir Soru & Cevap, 2. Bom, sadece +25 rep var :) O kadar da kötü değil, daha kötü olacağını söylemeliyim. Ve evet, @ EnableScripting 'yoldur, bir özellik isteği ekleyeceğim. – JBaruch
https://jira.spring.io/browse/SPR-12300 Şanslı sayı :) – JBaruch