Использование Spring в автономном приложении
Я ищу образцы или учебные пособия по использованию Spring в автономном приложении (для настольных компьютеров / Swing), я много искал, но не смог найти что-то полезное, все примеры и учебные пособия предназначены для веб-приложений, пожалуйста, сообщите.
11 ответов
Создайте отдельное приложение с Maven, как указано здесь:
Поместите applicationContext в classpath и загрузите его в основной класс следующим образом:
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
Смотрите полную статью здесь:
http://www.devdaily.com/blog/post/java/load-spring-application-context-file-java-swing-application
Вот простой пример с 2 классами. Написал в groovy для удобства чтения, но для вас будет работать и в java с правильными синтаксическими настройками
Вот ваш главный:
class Main {
static void main(String[] args) {
def ctx = new AnnotationConfigApplicationContext()
ctx.register(AppConfig.class)
ctx.refresh()
def runner = ctx.getBean("mainRunner")
runner.run()
}
void run() {
println "running from bean"
}
}
Вот ваш конфиг bean:
@Configuration
class AppConfig {
@Bean
Main mainRunner() {
new Main()
}
}
AppFuse предоставляет различные демонстрационные приложения, весь исходный код можно загрузить с помощью Maven. Вы можете получить полный код этого демонстрационного приложения, созданного с использованием Spring MVC, Spring, Hibernate.
Да, это веб-приложение, вы можете копаться в нем и конвертировать его в отдельное приложение.
Создать проект Maven
это создаст класс Application для вашего проекта
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
//SpringApplication.run(YourClass.class, args);
YourClass.main(args);
}
}
поместите основной метод YourClass вместо SpringApplication.run(YourClass.class,args);
это работает так хорошо.
Когда я впервые начал изучать весну, я следовал этим урокам:
Они довольно просты, но помогут вам быстро начать работу. После этого в конечном итоге все сводится к тому, для чего вы собираетесь его использовать. Вы ищете поддержку IOC, JMS, JDBC/Hibernate и т. Д.?
Как уже упоминалось:
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext");
принесет все ваши весенние бобы в ваше приложение, независимо от его типа.
Мне удалось запустить отдельное приложение Spring Boot с помощью Swing.
public static void main(String[] args) {
ConfigurableApplicationContext ctx = new SpringApplicationBuilder(SwingApp.class)
.headless(false).run(args);
EventQueue.invokeLater(() -> {
SwingApp ex = ctx.getBean(SwingApp.class);
ex.setVisible(true);
});
}
Нам нужно использовать SpringApplicationBuilder
и выключите режим без головы.
@SpringBootApplication
public class SwingApp extends JFrame {
SwingApp
украшен @SpringBootApplication
аннотаций.
Смотрите мой учебник по интеграции Spring Boot Swing для полного рабочего примера.
Взгляните на "Barebones Spring". Я думаю, что это хороший, современный пример использования Spring 3.
Это первое, что я нашел в Google. Это выглядит довольно хорошо тоже.
http://www.mkyong.com/spring/maven-spring-hibernate-annotation-mysql-example/
Это учебник Spring, который я нашел очень полезным. Это объясняет Spring на основе отдельного приложения.
https://www.youtube.com/watch?v=GB8k2-Egfv0
Автор этого видео также обновил видео Maven и Struts и объяснил это простым, но эффективным способом.
Я надеюсь, что это помогает.
Следующие 4 библиотеки необходимы для минимального отдельного приложения Spring:
commons-logging.jar (см. http://commons.apache.org/logging)
org.springframework.core-2.5.6.A.jar (см.
http://www.springsource.org/download)org.springframework.beans-2.5.6.A.jar (см.
http://www.springsource.org/download)org.springframework.context-2.5.6.A.jar (см.
http://www.springsource.org/download)
Хороший пример приведен здесь.
Итак, вкратце: что делает ваше приложение (любого типа) приложением Spring, так это наличие и использование хотя бы одного BeanFactory, обычно расширяемого как ApplicationContext. В веб-приложении вы, вероятно, объявите в web.xml сервлет, такой как DispatcherServlet, который заботится о создании и инициализации контекста; в автономном приложении ваш собственный код просто создает и инициализирует контекст, как показано выше. Материал веб-фреймворка, который волшебным образом дает вам контекст, делает почти то же самое под покровом.