LiteCoding

Заметки о программировании

Как использовать Spring Framework в консольном приложении

without comments

Недавно мне понадобилось вынести фрагмент кода, который выполнялся с заданной периодичностью, из web-приложения на Java в консольную утилиту. Опыта в использовании Spring Framework у меня не так уж и много, но чутье подсказывало, что это возможно. Web-приложение конфигурировалось смешанным образом (xml + аннотации), активно использовались аннотации @Autowired и @Component. Естественно, переписывать DAO-классы с jdbcTemplates на нашу абстракцию не хотелось. И конфигурировать все параметры доступа вручную тоже. А что самое главное, все было выстроено в изящную структуру bean’ов, которая делала все сама. И раз все работало, то что-то править в ней для меня выглядело, как минимум, кощунством.

И оказалось, что решение есть, причем оно очень простое. Но для того, чтобы найти его, мне пришлось поупражняться в составлении поисковых запросов. И, вуаля!

public class Main
{
	...
	
	private static ApplicationContext context = new FileSystemXmlApplicationContext( "web-application-context.xml" );
	
	...
	
	/**
	 * @param args
	 */
	public static void main(String[] args)
	{		
		MyBean bean = (MyBean)context.getBean("MyBean");
		...
	}
}

Этот фрагмент кода позволяет получить тот самый контекст, с помощью которого можно создавать bean’ы. Теперь в него нужно было закинуть все зависимости и скопировать уже имеющиеся конфигурационные файлы.

В моем случае список зависимостей был таким:

  • aopalliance.jar
  • commons-collections-3.1.jar
  • commons-dbcp-1.2.2.jar
  • commons-logging.jar
  • commons-pool-1.4.jar
  • org.springframework.aop-3.0.3.RELEASE.jar
  • org.springframework.asm-3.0.3.RELEASE.jar
  • org.springframework.expression-3.0.3.RELEASE.jar
  • org.springframework.web.servlet-3.0.3.RELEASE.jar
  • postgresql-8.3-604.jdbc3.jar
  • servlet-api.jar

Очень просто, не правда ли?

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Tumblr

Written by Дмитрий Воробьев

Пятница, Январь 28th, 2011 at 14:28

Leave a Reply

You must be logged in to post a comment.