我想使用Spring Framework的动态语言支持,从Groovy脚本创建一个可重新加载的 bean(在运行时!).我想避免xml配置,并在Spring BootApplication上下文中使用注释(或类似).
这是一个扩展的问题,这已经被问,扩展是,我确实希望得到我的手脏BeanPostProcessors,Handlers,Parsers,whatever it takes.
我已经快速浏览了ScriptFactoryPostProcessor的javadoc ,并提出了一些工作示例.我想知道为什么Application.groovy (v2)不起作用?
beans.xml - 有效!(但我想在 Application.groovy中定义bean而不是xml......)
<bean class="org.springframework.scripting.support.ScriptFactoryPostProcessor">
<property name="defaultRefreshCheckDelay" value="1000" />
</bean>
<bean id="foobar0" class="org.springframework.scripting.groovy.GroovyScriptFactory">
<constructor-arg value="file:/C:/someDir/src/main/static/FoobarService.groovy"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
Application.groovy(v1) - 有效!(但这是一个非常难看的解决方法)
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application)
// Add GroovyScriptFactory after Application is prepared...
app.addListeners(new …Run Code Online (Sandbox Code Playgroud)