2016-09-06 2 views
0

Я создал приложение с использованием Java Swing. Теперь я хочу интегрировать Spring Autowiring (Dependency Injection) в этом приложении.мы можем реализовать Spring Autowiring в автономном приложении Java (Swing)

Сомнение в том, что для создания пользовательского интерфейса (User Interface), я бы использовал «новое» ключевое слово, но для использования классов DAO и POJO я хочу, чтобы они были автоматически подключены.

Может кто-нибудь предложить и помочь мне.

+0

Вам нужно сделать некоторые рефакторинга, чтобы Spring для управления компонентами SWING так же как DAO и POJO. См. [Здесь] (http://stackoverflow.com/questions/3718671/swing-gui-development-with-spring), который имеет ссылку на старый учебник. Просто переведите конфигурацию на основе xml в аннотации. –

+0

Большое спасибо @AndrewS. Это помогло мне .. –

ответ

0

Не уверен, что я понял вас правильно. Я предполагаю, что вы хотите, чтобы авторизовать свои DAO, Services и т. Д. В классах пользовательского интерфейса. Но чтобы сделать это, эти классы пользовательского интерфейса должны были быть самими Весенними Бобами.

Что вы можете сделать, это зарегистрировать каждый класс пользовательского интерфейса в контексте приложения Spring при его создании. Чтобы сделать это, вы могли бы создать следующий класс:

public class BeanProvider { 

    private static ApplicationContext applicationContext; 

    /** 
    * Autowires the specified object in the spring context 
    * 
    * @param object 
    */ 
    public static void autowire(Object object) { 
     applicationContext.getAutowireCapableBeanFactory().autowireBean(object); 
    } 

    @Autowired 
    private void setApplicationContext(ApplicationContext applicationContext) { 
     BeanProvider.applicationContext = applicationContext; 
    } 

} 

, а затем в конструкторе каждого класса UI:

public MyUiClass(){ 
BeanProvider.autowire(this); 
} 
+0

Прохладный .. Я обязательно буду следовать этому .. и ответ как можно скорее с некоторыми результатами ... Большое спасибо @aebblcraebbl –

Смежные вопросы