Рубрики
Без рубрики

Пример Spring MethodInvokingFactoryBean

– Пружинный методинвокирующийфакторный пример

Автор оригинала: 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
				
			
		
	

Рекомендации

  1. методинвокингфакторибеан javadoc
  2. Метод вызова бобового JavaDoc

Оригинал: “https://mkyong.com/spring/spring-methodinvokingfactorybean-example/”