• Spring boot(二)快速体验Web开发


    spring-boot-starter-web 是 Spring Boot 对 Web 开发的支持,主要包括 RESTful、参数校验、使用 Tomcat 作为内嵌容器等功能
    1.json的支持
    2.请求传参
    使用Spirng Boot 可以轻松的对请求做一些限制,如为了安全只允许 POST 请求的访问。只需要在方法上 添加一个配置即可:

    @RequestMapping(name="/getUser", method= RequestMethod.POST) 
    public User getUser() { 
         ... 
    }

    Spring Web 层支持多种方法传参,如传入属性 name,其直接使用对象接收也是支持的。

    @RequestMapping(name="/getUser", method= RequestMethod.POST) 
    public String getUser(User user) { 
       ... 
    }

    这样的写法,只要是 User 的属性都会被自动填充到 user 对象中。还有另外一种传参的方式。
    使用 Url 进行传参,这种形式的传参地址栏会更加美观一些。

    @RequestMapping(value="get/{name}", method=RequestMethod.GET) 
    public User get(@PathVariable String name) { 
       User user=new User(); 
       user.setName(name); 
       return user; 
    }

    3.参数校验
     和普通javaweb中一样,通过注解的形式实现,不再阐述
    4.自定义 Filter
    我们常常在项目中会使用 Filters 用于记录请求日志、排除有 XSS 威胁的字符、执行权限验证等等。Spring Boot 自动添加了
    OrderedCharacterEncodingFilter 和 HiddenHttpMethodFilter,并且可以自定义 Filter。
    自定义 Filter 两个步骤:
    1)实现 Filter 接口,实现 doFilter 方法
    2)添加 @Configuration 注解,将自定义 Filter 加入过滤链
    新建 MyFilter 类,使用 doFilter() 方法:

    public class MyFilter implements Filter { 
       @Override 
       public void destroy() { 
       // TODO Auto-generated method stub 
       } 
       @Override 
       public void doFilter(ServletRequest srequest, ServletResponse sresponse, Filte rChain 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 
       } 
    }

    将自定义 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; 
       } 
    }

    添加完后启动项目,访问任意的 Url,都会看到控制台打印如下信息:

    this is MyFilter,url :/xxx
    说明 MyFilter 已经对所有的 Url 进行了监控,在实际使用的过程中,常常利用这个特性进行 session 验证,
    判断用户是否登录。
    5.自定义 Property
    配置在 application.properties 中

    com.neo.title=纯洁的微笑 
    com.neo.description=分享生活和技术

    自定义配置类:

    @Component 
    public class NeoProperties { 
    @Value("${com.neo.title}") 
    private String title; 
    @Value("${com.neo.description}") 
    private String description; 
    //省略 getter settet ?法 
    }

    写单元测试进?验证:

    @RunWith(SpringRunner.class) 
    @SpringBootTest 
    public class PropertiesTest { 
      @Resource 
      private NeoProperties properties; 
      @Test 
      public void testProperties() throws Exception { 
        System.out.println("title:"+properties.getTitle()); 
        System.out.println("description:"+properties.getDescription()); 
      } 
    }

    运行 test 后输出结果:
    text title:纯洁的微笑 description:分享生活和技术

    总结
    Spring Boot 集成了参数校验、内嵌容器、Restful、JSON 内容,这些技术在进?行Web 开发中必不可少。
    Spring Boot 对这些技术进行了包装,让我们在 Web 项目开发过程中非常容易的使用这些技术,降低了开发 Web 项目的技术难度。

  • 相关阅读:
    如何设置项目encoding为utf-8
    如何使用Navicat恢复数据库脚本
    如何使用Navicat备份数据库脚本
    表单编辑组件使用指南
    Maven如何打包本地依赖包
    怎么替换jar包里面的文件?
    如何开始创建第一个基于Spring MVC的Controller
    怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL
    如何使用Eclipse调试framework
    windows下安装oracle,sqlplus连接启动oracle(oracle 主机字符串输入是什么)
  • 原文地址:https://www.cnblogs.com/person008/p/9561351.html
Copyright © 2020-2023  润新知