13

Я начинаю новое веб-приложение Java с нуля.Весна и Guice вместе, или просто Весна

У меня нет опыта работы с Spring Framework, но я знаю, что хотел бы использовать некоторые его функции, такие как Transaccions Management.

С другой стороны, мне очень нравится Guice для инъекций зависимости.

Я знаю, что Guice и Spring могут работать вместе: http://www.jroller.com/mindcrime/entry/an_example_of_integrating_guice

Но перед началом проектирования моего заявления, я хотел бы знать, если кто-то испытывали проблемы, следуя этот подход.

Кроме того, мне действительно нравится, что вам не нужен файл конфигурации XML, а просто java-модули, которые короче и их легче читать. Есть ли альтернатива файлам конфигурации XML на Spring, похожая на Guice?

+1

IMHO использовать гусь, если вам нужна только инъекция зависимости. –

+1

Поскольку мне нужно больше возможностей, чем просто инъекция зависимостей, я поеду с ** Spring **. Спасибо всем за ответы. – csalazar

ответ

14

Я думаю, что Весна сама по себе достаточно хороша для корпоративного применения.

Весенний доцент необходим XML тоже !!! В современных приложениях Spring используются JavaConfig и минимальная конфигурация. Взгляните на Spring Boot Guides. Приложения Whole Spring не могут использовать какой-либо XML вообще.

Guice приятный, но очень ограниченный. С Spring можно писать веб-приложение или приложение REST с транзакциями и настойчивостью очень легко и быстро. С Guice это сложнее.

+5

Вы очень * ошибаетесь, когда говорите, что Guice ограничен. Можно писать приложения REST с сохранением и транзакциями с Guice так же легко (если не проще), как с Spring. Например, для сохранения и транзакций существует [официальное расширение] (http://code.google.com/p/google-guice/wiki/GuicePersist). И Resteasy, например, поддерживает Guice из коробки. –

+0

Несомненно, проект Spring предоставляет множество библиотек, кроме контейнера DI, и они интегрированы с указанным контейнером, но не совсем понятно, что из-за этого Guice ограничен. –

+1

Взгляните на домашнюю страницу Guice: * это легкая конструкция для инъекций зависимостей для Java *, а также сравнить со страницей Spring: * помогает ... создавать простые, портативные, быстрые и гибкие системы и приложения на базе JVM *. Все возможно, но Spring посвящена созданию корпоративного приложения. – MariuszS

11

Если вы только начинаете, то я рекомендую вам с помощью https://github.com/spring-projects/spring-boot

Он имеет большую функцию автоматической настройки и сохраняет написание коды шаблонной. Я даже могу освободить вас от использования сервера приложений из-за встроенного Tomcat. Например, реализующего простой контроллер MVC (который может быть использован в качестве конечных точек REST) ​​выглядит следующим образом:

@Controller 
@EnableAutoConfiguration 
public class SampleController { 

    @RequestMapping("/") 
    @ResponseBody 
    String home() { 
     return "Hello World!"; 
    } 

    public static void main(String[] args) throws Exception { 
     SpringApplication.run(SampleController.class, args); 
    } 
} 

Теперь вы можете выполнить java -jar your_package.jar и то все. Вы также получите управление транзакциями, интеграцию с базой данных и т. Д. Дополнительные примеры можно найти в упомянутой ссылке, особенно в каталоге https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples

5

У Spring есть Java-аннотация для двух основных выпусков. Вам не нужно писать одну строку XML (даже не web.xml!)

Я работал с Guice и Spring. Guice достаточно для небольших проектов, которым требуется DI, но если вы собираетесь использовать Spring для MVC или транзакционную поддержку, вы можете просто использовать свой DI. У Guice также нет хорошей поддержки профиля, как это делает Spring - вам нужно самостоятельно ручное переключение модулей, если вы хотите иметь отдельные компоненты для локальной разработки, тестовых сред и производства.

0

Я также предлагаю вам взглянуть на HK2 для легкого двигателя J2SE DI. Он похож на Guice и CDI и имеет множество возможностей расширяемости, которые могут оказаться интересными. Он также работает с Guice и Spring через двунаправленные мосты. Вы можете начать изучать HK2 здесь: http://hk2.java.net/. Информация о Guice Bridge находится здесь: https://hk2.java.net/2.2.0-b27/guice-bridge.html. Информация о Весеннем мосту находится здесь: https://hk2.java.net/2.2.0-b27/spring-bridge.html.

Решение о том, какой поставщик DI использовать, основывается на специальных особенностях, необходимых вашему приложению.

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