史上最全springboot配置,踩坑,注解,使用手册(持续更新中)

cover

springboot

春节在家长了几斤肉,今天开始减肥了(工作了)。19年的第一篇文章,本篇文章将覆盖springboot所有配置(本人实际工作中所遇到问题以及学习总结),后续将会持续更新!话不多说,直接开始。

详细配置

注意:本演示全部基于springboot最新版本,现在是**2.1.2.RELEASE**,并且所有配置将全部使用yaml格式!

如何配置springboot监听端口?

  1. 通过application.yml指定。(推荐)
server:
  port: 8080

注意:如果使用server.port=0,将使用一个随机端口,可以控制台查看。
2. 指定jvm参数(启动多个项目调试时推荐使用)
idea中:Edit Configurations -> VM options
运行jar命令: java -Dserver.port=8080 app.jar
springboot
3. 运行java -jar命令时指定
如: java -jar app.jar --server.port=8080
4. 通过代码指定:

@Configuration
public class TomcatConfig {
   

    @Bean
    @Autowired
    public TomcatWebServerFactoryCustomizer factoryCustomizerAutoConfiguration(Environment environment, ServerProperties serverProperties) {
   
            serverProperties.setPort(8888);
        return new TomcatWebServerFactoryCustomizer(environment, serverProperties);
    }
}

springboot中如何添加filter

  1. 继承Filter并且将该类作为一个bean加入spring容器,使用@Order设置filter顺序
@Component
@Order(1000)
public class FirstFilter implements Filter {
   
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
   
        //to do something.
        
        filterChain.doFilter(servletRequest, servletResponse);
    }
}

注意!使用这种方式注册的filter将拦截所有请求,无法指定拦截url。
2. 使用FilterRegistrationBean类手动注册一个filter(推荐)

public class SecondFilter implements Filter {
   
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
   
        //to do something.

        System.out.println("SecondFilter.doFilter");

        filterChain.doFilter(servletRequest, servletResponse);
    }
}
@Configuration
public class FilterConfig {
   
    @Bean
    public FilterRegistrationBean<SecondFilter> secondFilterFilterRegistrationBean() {
   
        FilterRegistrationBean<SecondFilter> registrationBean = new FilterRegistrationBean<>();
        registrationBean.setFilter(new SecondFilter());
        registrationBean.setOrder(10001);

        registrationBean.addUrlPatterns("/**");
        
        return registrationBean;
    }
}
  1. 开启@WebFilter扫描。
    在启动类上加上@ServletComponentScan注解,定义filter如下:
@WebFilter(filterName = "ThridFilter", urlPatterns = "/**")
@Order(1002)
public class ThridFilter implements Filter {
   

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
   
        System.out.println("ThridFilter.doFilter");
        chain.doFilter(req, resp);
    }

}

采坑记录:该方式只在内置web容器下有效(打jar包),如果使用war包,将失效,有兴趣的可以看一看@ServletComponentScan注解说明。

springboot如何添加servlet

  1. 同上类似,使用ServletRegistrationBean
@Bean
public ServletRegistrationBean servletRegistrationBean(){
   
    return new ServletRegistrationBean(new FooServlet
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值