Spring MethodInvokingFactoryBean Пример
В Spring вы можете использоватьMethodInvokingFactoryBean
для запуска метода, получения результата и внедрения результата в другой компонент. Этот метод invoker очень полезен в конфигурации XML, но теперь его меньше используют в пользу аннотаций и Spring-выражений.
1. MethodInvokingFactoryBean
1.1 Example to get the current Java version.
Конфигурация Spring XML
package com.example.web; public class JavaUtils { String javaVersion; public String getJavaVersion() { return javaVersion; } public void setJavaVersion(String javaVersion) { this.javaVersion = javaVersion; } }
1.2 Java equivalent.
System.getProperties().getProperty("java.version")
2. MethodInvokingBean
Spring 4 представил новыйMethodInvokingBean
, чтобы делать то же самое, только без возврата какого-либо значения.
2.1 Java code, a bit long, but it works.
public void startDBM() { MethodInvokingBean mBean = new MethodInvokingBean(); mBean.setTargetClass(DatabaseManagerSwing.class); mBean.setTargetMethod("main"); String[] args = new String[] { "--url", "jdbc:hsqldb:mem:testdb", "--user", "sa", "--password", "" }; mBean.setArguments(args); try { mBean.prepare(); mBean.invoke(); } catch (Exception e) { e.printStackTrace(); } }
2.2 The MethodInvokingBean
is good at XML configuration, but not in Java code, you can do the same thing with just one line of code.
public void startDBM() { DatabaseManagerSwing.main( new String[] { "--url", "jdbc:hsqldb:mem:testdb", "--user", "sa", "--password", "" }); }
2.3 XML example, show you how to pass a String [] array argument to MethodInvokingBean
--url jdbc:derby:memory:dataSource --user sa --password