com.github.baimurzin.config.WebConfig.java Source code

Java tutorial

Introduction

Here is the source code for com.github.baimurzin.config.WebConfig.java

Source

package com.github.baimurzin.config;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import com.mangofactory.swagger.models.dto.ApiInfo;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.*;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

/**
 * Created by vlad on 16.10.15.
 */
@Configuration
@EnableWebMvc
@EnableSwagger
@ComponentScan(basePackages = { "com.github.baimurzin.controller" })
public class WebConfig extends WebMvcConfigurerAdapter {
    @Bean
    public ViewResolver resolver() {
        InternalResourceViewResolver url = new InternalResourceViewResolver();
        url.setPrefix("/app/");
        url.setSuffix(".html");
        return url;
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        super.addInterceptors(registry);
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        //        super.configureDefaultServletHandling(configurer);
        configurer.enable();
    }

    @Bean
    public String getBean(ObjectMapper mapper) {
        return "";
    }

    private SpringSwaggerConfig springSwaggerConfig;

    @Autowired
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
        this.springSwaggerConfig = springSwaggerConfig;
    }

    @Bean
    public SwaggerSpringMvcPlugin customImplementation() {
        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(apiInfo());
    }

    /*
    write ur own api info here
     */
    private ApiInfo apiInfo() {
        ApiInfo apiInfo = new ApiInfo("Api A4G", "API v0.0.1", "http://arena4game.ru/terms",
                "Baimurzin.719@gmail.com", "Please read the license terms...", "Arena4Game.ru");

        return apiInfo;
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
        //        registry.addResourceHandler(Constants.EXTERNAL_PATH + "/**").addResourceLocations("file:///" + env.getProperty("image.upload.path")).setCachePeriod(86400);

        registry.addResourceHandler("/static/**").addResourceLocations("/app/");
        /**
         * swagger UI resources
         */
        registry.addResourceHandler("/css/**").addResourceLocations("/public/css/");
        registry.addResourceHandler("/images/**").addResourceLocations("/public/images/");
        registry.addResourceHandler("/js/**").addResourceLocations("/public/js/").addResourceLocations("/app/");
        registry.addResourceHandler("/fonts/**").addResourceLocations("/public/fonts/");
        registry.addResourceHandler("/lib/**").addResourceLocations("/public/lib/");
        registry.addResourceHandler("*.html").addResourceLocations("/");

        registry.addResourceHandler("/bootstrap/**").addResourceLocations("/app/vendor/bootstrap/");
    }

}