Warum fragen Sie uns nicht direkt per E-Mail? :-)
Ich sehe, dass XML Lang Unterstützung ist Magie. Es gibt genug Zeug, das auf BeanDefinition
und seiner attributes
basiert. Zusätzlich gibt es einige Haken mit ProxyFactory
und CGLIB
für die lang:property
.
Was sehe ich für die JavaConfig ist einige Java-Klasse-Wrapper für die ScriptEvaluator
und RefreshableResourceScriptSource
von 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);
}
}
}
Wo die Calculator.groovy
ist:
x + y
Ich verstehe, dass es nicht so ist Flexibel, wie es mit Schnittstellen und Konfiguration aus XML-Definition aussieht, aber zumindest wird es Ihnen helfen, zu sehen, wo wir sind.
Fühlen Sie sich frei, ein JIRA-Problem in Bezug auf die Angelegenheit zu erheben, und wir werden sehen, was wir hier tun können. So etwas wie @EnableScripting
und @ScriptSource(refreshDelay = 1000)
über die Resource
@Bean
Methode.
Ich denke für jetzt können Sie nur @Import
einige XML-Schnipsel mit lang
Definitionen.
Cheers, Artem
Vielen Dank für Ihre Antwort, Mann! Ich habe nicht per E-Mail Ursache 1 gefragt. Ich denke, es ist eine gute Q & A zu öffentlich und auffindbar, 2. Boom, Sie haben nur +25 rep :) Es ist nicht so schlimm, ich muss sagen, ich habe schlimmer erwartet. Und ja, '@ EnableScripting' ist der Weg, ich werde eine Feature-Anfrage hinzufügen. – JBaruch
https://jira.spring.io/browse/SPR-12300 Glückszahl :) – JBaruch