mirror of https://github.com/halo-dev/halo
103 lines
3.7 KiB
Java
103 lines
3.7 KiB
Java
package cc.ryanc.halo.config;
|
|
|
|
import cc.ryanc.halo.config.properties.HaloProperties;
|
|
import cc.ryanc.halo.security.resolver.AuthenticationArgumentResolver;
|
|
import cc.ryanc.halo.factory.StringToEnumConverterFactory;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
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.context.annotation.PropertySource;
|
|
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
|
import org.springframework.format.FormatterRegistry;
|
|
import org.springframework.web.servlet.LocaleResolver;
|
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
|
|
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
|
|
|
|
import java.util.List;
|
|
import java.util.Locale;
|
|
|
|
/**
|
|
* <pre>
|
|
* 拦截器,资源路径配置
|
|
* </pre>
|
|
*
|
|
* @author : RYAN0UP
|
|
* @date : 2018/1/2
|
|
*/
|
|
@Slf4j
|
|
@Configuration
|
|
@EnableWebMvc
|
|
@ComponentScan(basePackages = "cc.ryanc.halo.web.controller")
|
|
@PropertySource(value = "classpath:application.yaml", ignoreResourceNotFound = true, encoding = "UTF-8")
|
|
public class WebMvcAutoConfiguration implements WebMvcConfigurer {
|
|
|
|
@Autowired
|
|
private HaloProperties haloProperties;
|
|
|
|
@Override
|
|
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
|
|
resolvers.add(new AuthenticationArgumentResolver());
|
|
}
|
|
|
|
/**
|
|
* 配置静态资源路径
|
|
*
|
|
* @param registry registry
|
|
*/
|
|
@Override
|
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
|
registry.addResourceHandler("/static/**")
|
|
.addResourceLocations("classpath:/static/");
|
|
registry.addResourceHandler("/**")
|
|
.addResourceLocations("classpath:/templates/themes/");
|
|
registry.addResourceHandler("/upload/**")
|
|
.addResourceLocations("file:///" + System.getProperties().getProperty("user.home") + "/halo/upload/");
|
|
registry.addResourceHandler("/favicon.ico")
|
|
.addResourceLocations("classpath:/static/halo-admin/images/favicon.ico");
|
|
registry.addResourceHandler("/backup/**")
|
|
.addResourceLocations("file:///" + System.getProperties().getProperty("user.home") + "/halo/backup/");
|
|
|
|
if (!haloProperties.getDocDisabled()) {
|
|
// If doc is enable
|
|
registry.addResourceHandler("swagger-ui.html")
|
|
.addResourceLocations("classpath:/META-INF/resources/");
|
|
registry.addResourceHandler("/webjars/**")
|
|
.addResourceLocations("classpath:/META-INF/resources/webjars/");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 国际化设置
|
|
*
|
|
* @return LocaleResolver
|
|
*/
|
|
@Bean
|
|
public LocaleResolver localeResolver() {
|
|
final SessionLocaleResolver slr = new SessionLocaleResolver();
|
|
slr.setDefaultLocale(Locale.CHINA);
|
|
return slr;
|
|
}
|
|
|
|
/**
|
|
* 国际化参数拦截器
|
|
*
|
|
* @return LocaleChangeInterceptor
|
|
*/
|
|
@Bean
|
|
public LocaleChangeInterceptor localeChangeInterceptor() {
|
|
final LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
|
|
lci.setParamName("lang");
|
|
return lci;
|
|
}
|
|
|
|
@Override
|
|
public void addFormatters(FormatterRegistry registry) {
|
|
registry.addConverterFactory(new StringToEnumConverterFactory());
|
|
}
|
|
}
|