आप हमें ईमेल द्वारा सीधे क्यों नहीं पूछते हैं? :-)
मुझे लगता है कि एक्सएमएल लैंग समर्थन जादू पर निर्भर है। पर्याप्त सामान है जो BeanDefinition
और इसके attributes
पर आधारित है। अतिरिक्त में ProxyFactory
और CGLIB
lang:property
के साथ कुछ हुक हैं।
@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
है:
क्या मैं JavaConfig के लिए देख Spring Integration से ScriptEvaluator
और RefreshableResourceScriptSource
के लिए कुछ जावा वर्ग आवरण है
x + y
मैं समझता हूँ कि यह ऐसा नहीं है लचीला क्योंकि यह एक्सएमएल परिभाषा से इंटरफेस और कॉन्फ़िगरेशन के साथ दिखता है, लेकिन कम से कम यह आपको यह देखने में मदद करेगा कि हम कहां हैं।
इस मामले पर एक जेआईआरए मुद्दा उठाने के लिए स्वतंत्र महसूस करें और हम देखेंगे कि हम यहां क्या कर सकते हैं। @EnableScripting
और @ScriptSource(refreshDelay = 1000)
Resource
@Bean
विधि पर कुछ ऐसा है।
मुझे लगता है कि अब आप @Import
lang
परिभाषाओं के साथ कुछ एक्सएमएल स्निपेट कर सकते हैं।
चीयर्स, Artem
स्रोत
2014-10-06 09:03:54
अपने जवाब के लिए धन्यवाद, आदमी! मैंने ईमेल कारण से नहीं पूछा था। मुझे लगता है कि यह एक अच्छा क्यू एंड ए सार्वजनिक और खोजने योग्य है, 2. बूम, आपको अभी +25 प्रतिनिधि मिल गया है :) यह बुरा नहीं है, मुझे कहना है, मुझे और भी बुरा लगता है। और हाँ, '@ EnableScripting' तरीका है, मैं एक सुविधा अनुरोध जोड़ दूंगा। – JBaruch
https://jira.spring.io/browse/SPR-12300 भाग्यशाली संख्या :) – JBaruch