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 项目的技术难度。

原文地址:https://www.cnblogs.com/person008/p/9561351.html

时间: 2024-07-29 22:46:31

Spring boot(二)快速体验Web开发的相关文章

Spring Boot入门-快速搭建web项目

Spring Boot 概述: Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum

Spring Boot 二三事:WEB 应用消息推送的那点事

阅读对象:本文适合SpringBoot 初学者及对SpringBoot感兴趣的童鞋阅读. 背景介绍:在企业级 WEB 应用开发中,为了更好的用户体验&提升响应速度,往往会将一些耗时费力的请求 (Excel导入or导出,复杂计算, etc.) 进行异步化处理. 由此带来的一个重要的问题是如何通知用户任务状态,常见的方法大致分为2类4种: HTTP Polling client pull HTTP Long-Polling client pull Server-Sent Events (SSE) s

使用Spring Boot来加速Java web项目的开发

使用Spring Boot来加速Java web项目的开发 我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的. 回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用gradle来构建的话基本也一样)然后新建Spring相关的xml文件,而且往往那些xml文件还不会少.然后继续使用tomcat或者jetty作为容器来运行这个工程.基本上每次创建一个新的项目都是这么一个流程,而我们有时候仅仅想快速的创建一

spring boot + vue + element-ui全栈开发入门——基于Electron桌面应用开发

 前言 Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的. Electron于2013年作为构建Github上可编程的文本编辑器Atom的框架而被开发出来.这两个项目在2014春季开源. 目前它已成为开源开发者.初创企业和老牌公司常用的开发工具. 看看谁在使用Electron

SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务

一.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.

Spring Boot带前后端 渐进式开发企业级博客系统

第1章 Spring Boot 简介   1-1 Spring Boot 博客_课程导学   1-2 Spring Boot 是什么第2章 开启 Spring Boot 的第一个 Web 项目   2-1 -初始化第一个Web项目    2-2 -用Gradle编译项目   2-3 -探索项目第3章 一个Hello World项目   3-1 编写项目构建信息    3-2 自定义存储库,加速构建   3-3 编写程序代码及测试用例    3-4 配置Wrapper,运行程序第4章 开发环境的搭

Spring Boot框架——快速入门

Spring Boot是Spring 全家桶非常重要的一个模块,通过 Spring Boot 可以快速搭建一个基于 Spring 的 Java 应用程序,Spring Boot 对常用的第三方库提供了配置方案,可以很好地和 Spring 进行整合,MyBatis.Spring Data JPA 等,可以一键式搭建功能完备的 Java 企业级应用. Spring Boot 的优势 - 不需要任何 XML 配置文件. - 内嵌 Web 服务器,可以直接启动. - 默认支持 JSON 数据,不需要做额

spring boot + vue + element-ui全栈开发入门——开篇

最近经常看到很多java程序员朋友还在使用Spring 3.x,Spring MVC(struts),JSP.jQuery等这样传统技术.其实,我并不认为这些传统技术不好,而我想表达的是,技术的新旧程度体现了做项目时的生产力.生产力低了,项目的开发成本就高.反之,生产力高,则成本低.笔者写本系列的目的是让使用“前后端不分离”的老技术的开发者做一个入门级的过度.因为目前流行的“前后端分离”技术足够简单,足够方便,足够易学,也足够完善. 项目所使用的前端技术是:element-ui,文档地址是:ht

深入Spring Boot:快速集成Dubbo + Hystrix

背景Hystrix 旨在通过控制那些访问远程系统.服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力.Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以及监控和配置等功能.Dubbo是Alibaba开源的,目前国内最流行的java rpc框架.本文介绍在spring应用里,怎么把Dubbo和Hystrix结合起来使用.Spring Boot应用生成dubbo集成spring boot的应用配置spring-cloud-starter-netflix-hys