Подтвердить что ты не робот

Spring и Guice вместе, или просто Spring

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

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

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

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

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

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

4b9b3361

Ответ 1

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

Spring Достаточно нужен XML! Современные приложения Spring используют JavaConfig и минимальную конфигурацию. Посмотрите Spring Руководства по загрузке. Приложения Spring вообще не могут использовать какой-либо XML.

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

Ответ 2

Если вы только начинаете, я рекомендую вам использовать 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

Ответ 3

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

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

Ответ 4

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

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