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

Я ищу образцы или учебные пособия по использованию Spring в автономном приложении (для настольных компьютеров / Swing), я много искал, но не смог найти что-то полезное, все примеры и учебные пособия предназначены для веб-приложений, пожалуйста, сообщите.

11 ответов

Решение
  1. Создайте отдельное приложение с Maven, как указано здесь:

    Создайте отдельное приложение с Maven

  2. Поместите 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);

это работает так хорошо.

Когда я впервые начал изучать весну, я следовал этим урокам:

tutorialspoint

Они довольно просты, но помогут вам быстро начать работу. После этого в конечном итоге все сводится к тому, для чего вы собираетесь его использовать. Вы ищете поддержку 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:

Хороший пример приведен здесь.

Итак, вкратце: что делает ваше приложение (любого типа) приложением Spring, так это наличие и использование хотя бы одного BeanFactory, обычно расширяемого как ApplicationContext. В веб-приложении вы, вероятно, объявите в web.xml сервлет, такой как DispatcherServlet, который заботится о создании и инициализации контекста; в автономном приложении ваш собственный код просто создает и инициализирует контекст, как показано выше. Материал веб-фреймворка, который волшебным образом дает вам контекст, делает почти то же самое под покровом.

Другие вопросы по тегам