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注解
心里有束光,眼里有片海