SpringBoot-配置详解

SpringBoot使用了一个全局的配置文件application.properties,放在src/mian/resource目录下或者类路径的/config下。springboot的全局配置文件的作用是对一些默认配置的值进行修改

  • spring.profiles.active=dev:指定因环境不同的配置文件
  • server.port=8888:指定项目的端口号
  • server.context-path=/xhy:指定项目的根路径 

自定义属性

  • application.properties提供自定义属性的支持,这样我们就可以吧一些常量配置在这里,然后直接要在使用的地方通过注解@value(value="${config.name}")取值(value注解可以取spring加载任意properties文件的key值)

 

自定义配置类

  • 使用@value注解有时候比较笨重,spring提供一种强类型的bean来替代这种方式
@Configuration
@EnableConfigurationProperties(UserProperties.class)
public class MyConfiguration{

}

@Component
@ConfigurationProperties(prefix = "spring.data.mongodb")
public class UserProperties {
    private  String host;
    private  int prot;

}
spring.data.mongodb.host=192.168.1.1
spring.data.mongodb.port=1234

配置Filter、Servlet、Interceptor、Listener

  • Filter可在application.java主启动类中添加如下代码
@Bean
public FilterRegistrationBean getEncodingFilter() {
     FilterRegistrationBean registration = new FilterRegistrationBean();
     registration.setFilter(new CharacterEncodingFilter());
     registration.setUrlPatterns(Collections.singletonList("*.json"));
     registration.setName("encodingFilter");
     Map<String, String> initParams = new HashMap<>();
     initParams.put("encoding", "UTF-8");
     registration.setInitParameters(initParams);
     registration.setOrder(1);
     return registration;
}

 

  • Servlet可在application.java主启动类中添加如下代码(监听器类似这两个ServletListenerRegistrationBean)
@Bean
public ServletRegistrationBean getDispatcherServlet() {
    Rw4SpringDispatchServlet servlet = new Rw4SpringDispatchServlet();
    ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(servlet);
    servletRegistrationBean.setLoadOnStartup(1);
    Map<String, String> initParams = new HashMap<>();
    initParams.put("contextConfigLocation", "classpath:spring/jsonDispatcher-servlet.xml");
    servletRegistrationBean.setInitParameters(initParams);
    servletRegistrationBean.setUrlMappings(Collections.singletonList("/"));
    servletRegistrationBean.setName("jsonDispatcher");
    servletRegistrationBean.setOrder(2);
    return servletRegistrationBean;
}
  •  过滤器和监听器,servlet的又一种配置方式
    • 在主启动类上加上@ServletComponentScan注解(默认值为加载当前模块的包,如果想连同其它模块一起扫描,加上value="cn.com")表明开启servlet的注解
    • 创建一个监听器,实现ServletContextListener接口,添加@WebListener注解
    • 自定义一个filter,实现Filter接口,添加@WebFilter注解,Servlet添加@WebServlet注解





 

posted @ 2018-03-15 10:37  hy_wx  阅读(193)  评论(0编辑  收藏  举报