代码改变世界

springboot的web开发

2018-03-08 16:12  用代码写出旋律  阅读(204)  评论(0编辑  收藏  举报

这里主要简述常用的json输出、filters、property、log等

1、json输出

只需要类添加 @RestController 即可,默认类中的方法都会以json的格式返回

@RestController
public class HelloWorldController {
    @RequestMapping("/getUser")
    public User getUser() {
        User user=new User();
        user.setUserName("傻宝");
        user.setPassWord("xxxx");
        return user;
    }
}

 

2、自定义Filters

 

我们常常在项目中会使用filters用于录调用日志、排除有XSS威胁的字符、执行权限验证等等。Spring Boot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,并且我们可以自定义Filter。

主要有两个步骤:

  1. 实现Filter接口,实现Filter方法
  2. 添加@Configurationz 注解,将自定义Filter加入过滤链

  代码如下:

@Configuration
public class WebConfiguration {
    @Bean
    public RemoteIpFilter remoteIpFilter() {
        return new RemoteIpFilter();
    }
    
    @Bean
    public FilterRegistrationBean testFilterRegistration() {

        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new MyFilter());
        registration.addUrlPatterns("/*");
        registration.addInitParameter("paramName", "paramValue");
        registration.setName("MyFilter");
        registration.setOrder(1);
        return registration;
    }
    
    public class MyFilter implements Filter {
        @Override
        public void destroy() {
            // TODO Auto-generated method stub
        }

        @Override
        public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain filterChain)
                throws IOException, ServletException {
            // TODO Auto-generated method stub
            HttpServletRequest request = (HttpServletRequest) srequest;
            System.out.println("this is MyFilter,url :"+request.getRequestURI());
            filterChain.doFilter(srequest, sresponse);
        }

        @Override
        public void init(FilterConfig arg0) throws ServletException {
            // TODO Auto-generated method stub
        }
    }
}

 

 3、自定义property

在web开发的过程中,我经常需要自定义一些配置文件,如何使用呢

配置在application.properties中

com.pangjh.enemy=傻宝
com.pangjh.teacher=香菇

自定义配置类

@Component
public class NeoProperties {
    @Value("${com.pangjh.enemy}")
    private String enemy;
    @Value("${com.pangjh.teacher}")
    private String teacher;

    //省略getter settet方法

    }

 

 

4、log配置

配置输出的地址和输出级别

logging.path=/user/local/log
logging.level.com.favorites=DEBUG
logging.level.org.springframework.web=INFO
logging.level.org.hibernate=ERROR

 

path为本机的log地址,logging.level 后面可以根据包路径配置不同资源的log级别

 

参考


http://www.cnblogs.com/ityouknow/p/5730412.html