Как использовать набор настраиваемых ресурсов bazaarvoice dropwizard


Всем привет,

в Может ли DropWizard обслуживать ресурсы из-за пределов файла jar ? Я читал, что статические файлы можно обслуживать вне jar-файла с помощью dropwizard-configurable-assets-bundle (позднее только DCAB).

Но примеров в сети нет. Единственный, на их странице github, мне не очень полезен.

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

Далее в сервисе я должен поставить эту строку: bootstrap.addBundle(new ConfiguredAssetsBundle("/assets/", "/dashboard/")); Но, к сожалению, он показывает мне ошибку, что он не применим для этого аргумента.

А в третьей части есть какой-то yaml, но я не знаю, то ли он комплектуется, то ли его надо куда-то положить.

И я заметил, что пути относятся к src/main/resources. Есть ли также вариант доступа к файлам за пределами этого?


person juraj    schedule 10.09.2013    source источник


Ответы (2)


Итак, шаги очень похожи на описанные в README.md.

  1. Вы начинаете с зависимости

    dependencies {
        compile 'com.bazaarvoice.dropwizard:dropwizard-configurable-assets-bundle:0.2.0-rc1'
    }
    
  2. Интерфейс AssetBundleConfiguration должен быть реализован вашим стандартным файлом конфигурации. Итак, в моем случае:

    public class BookRespositoryConfiguration extends Configuration 
                 implements AssetsBundleConfiguration {
        @Valid
        @NotNull
        @JsonProperty
        private final AssetsConfiguration assets = new AssetsConfiguration();
    
        @Override
        public AssetsConfiguration getAssetsConfiguration() {
            return assets;
        }
    }
    
  3. Эта конфигурация упоминается в вашем классе приложений.

    public class BooksRepositoryApplication 
                 extends Application<BookRespositoryConfiguration> {
    
        @Override
        public void initialize(Bootstrap bootstrap) {
            bootstrap.addBundle(new ConfiguredAssetsBundle("/assets/", "/books/"));
        }
    
        @Override
        public void run(BookRespositoryConfiguration configuration, 
                        Environment environment) throws Exception {
            //...
         }
     }
    
  4. И, наконец, конфигурация. Путь конфигурации указан относительно корня документа, поэтому в моем случае активы находятся вне папки приложения.

    assets:
        overrides:
            /books: ../book-repository
    

Теперь после запуска приложения вы можете легко перейти к http://localhost:8080/books/some-static-files.html

person Jakub Marchwicki    schedule 15.03.2014

Посмотрите обновленный пакет настраиваемых активов dropwizard, поддерживаемый на официальном пакете dropwizard-bundles.

https://github.com/dropwizard-bundles/dropwizard-configurable-assets-bundle .

person Olesia    schedule 26.10.2016