SpringBoot(二)Web综合开发

1、Web开发

Web开发过程常常会包含接口开发json输出、filters、property、log、整合页面、操作数据库等。

2、json接口开发

Spring开发项目,提供json接口时需要做的配置:

1)添加jackjson等相关jar包
2)配置Spring Controller扫描
3)对接的方法添加@ResponseBody

相比之下,SpringBoot就要简单多了,只需要类添加@RestController即可,默认类中的方法都会以json的格式返回

@RestController
public class HelloController {
    @RequestMapping("/getUser")
    public User getUser() {
    	User user=new User();
    	user.setUserName("小明");
    	user.setPassWord("xxxx");
        return user;
    }
}

若需要使用页面开发只要使用@Controller注解即可。

3、自定义Filter

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

1)实现Filter接口,实现Filter方法
2)添加@Configuration注解,将自定义Filter加入过滤链
package com.example.springboot_demo.Filter;

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

@Configuration
public class WebConfiguration {
    /**
     * SpringBoot通过方法完成Filter组件的注册
     * @return
     */
    @Bean
    public FilterRegistrationBean registerAllFilter(){
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new AllFilter());
        filterRegistrationBean.addUrlPatterns("/*");
        filterRegistrationBean.addInitParameter("paramName","paramValue");
        filterRegistrationBean.setName("AllFilter");
        filterRegistrationBean.setOrder(1);
        return filterRegistrationBean;
    }

    @Bean
    public FilterRegistrationBean registrationMyFilter(){
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        registrationBean.setFilter(new MyFilter());
        registrationBean.addUrlPatterns("/login/*");
        registrationBean.setName("MyFilter");
        registrationBean.setOrder(6);
        return registrationBean;
    }

    //自定义过滤器AllFilter
    public class AllFilter implements Filter {

        @Override
        public void init(FilterConfig filterConfig) throws ServletException {

        }

        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            HttpServletRequest request = (HttpServletRequest) servletRequest;
            System.out.println("this is AllFilter,url:"+request.getRequestURI());
            filterChain.doFilter(servletRequest,servletResponse);
        }

        @Override
        public void destroy() {

        }
    }

    //自定义过滤器MyFilter
    public class MyFilter implements Filter{
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            HttpServletRequest request = (HttpServletRequest) servletRequest;
            System.out.println("this is MyFilter:"+request.getRequestURI());
            filterChain.doFilter(servletRequest,servletResponse);
        }

        @Override
        public void init(FilterConfig filterConfig) throws ServletException {

        }

        @Override
        public void destroy() {

        }
    }
}

4、自定义Property配置文件

配置在 application.properties 中

com.zyt.project=springboot_demo
com.zyt.description=SpringBoot框架学习

自定义配置类实体

package com.example.springboot_demo.util;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class ZytProperties {
    @Value("${com.zyt.project}")
    private String project;

    @Value("${com.zyt.description}")
    private String description;

    public String getProject() {
        return project;
    }

    public String getDescription() {
        return description;
    }

}

5、配置log

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

logging.path=D:/softwareTools/IdeaProjects/springboot_demo/src/main/resources/logs
logging.level.com.favorites=DEBUG
logging.level.org.springframework.web=INFO
logging.level.org.hibernate=ERROR

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值