Автор оригинала: mkyong.
Весной вы можете использовать MethodInvokingFactoryBean
чтобы запустить метод, получите результат и вставьте его в другой компонент. Этот вызыватель метода очень полезен в конфигурации XML, но сейчас его меньше используют в пользу аннотаций и выражений Spring.
1. МетодиНвокингфАкторибЕана
1.1 Пример, чтобы получить текущую версию Java.
package com.mkyong.web; public class JavaUtils { String javaVersion; public String getJavaVersion() { return javaVersion; } public void setJavaVersion(String javaVersion) { this.javaVersion = javaVersion; } }
1.2 Эквивалент Java.
System.getProperties().getProperty("java.version")
2. Способ вызова компонента
Весна 4 введен новый Метод, вызывающий Bean
, чтобы сделать то же самое, просто не возвращая никакого значения.
2.1 Java-код, немного длинный, но он работает.
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 В Метод вызова Bean
хорош в конфигурации XML, но не в коде Java, вы можете сделать то же самое с помощью всего одной строки кода.
public void startDBM() { DatabaseManagerSwing.main( new String[] { "--url", "jdbc:hsqldb:mem:testdb", "--user", "sa", "--password", "" }); }
2.3 Пример XML, показывающий, как передать аргумент массива String [] в Метод, вызывающий компонент
--url jdbc:derby:memory:dataSource --user sa --password
Рекомендации
Оригинал: “https://mkyong.com/spring/spring-methodinvokingfactorybean-example/”