Spring boot(二)快速体验Web开发
2021-07-10 15:05
标签:pat start filter webconfig text runner 并且 地址 param spring-boot-starter-web 是 Spring Boot 对 Web 开发的支持,主要包括 RESTful、参数校验、使用 Tomcat 作为内嵌容器等功能 Spring Web 层支持多种方法传参,如传入属性 name,其直接使用对象接收也是支持的。 这样的写法,只要是 User 的属性都会被自动填充到 user 对象中。还有另外一种传参的方式。 3.参数校验 将自定义 Filter 加入过滤链: 添加完后启动项目,访问任意的 Url,都会看到控制台打印如下信息: this is MyFilter,url :/xxx 自定义配置类: 写单元测试进?验证: 运行 test 后输出结果: 总结 Spring boot(二)快速体验Web开发 标签:pat start filter webconfig text runner 并且 地址 param 原文地址:https://www.cnblogs.com/person008/p/9561351.html
1.json的支持
2.请求传参
使用Spirng Boot 可以轻松的对请求做一些限制,如为了安全只允许 POST 请求的访问。只需要在方法上 添加一个配置即可:@RequestMapping(name="/getUser", method= RequestMethod.POST)
public User getUser() {
...
}
@RequestMapping(name="/getUser", method= RequestMethod.POST)
public String getUser(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;
}
和普通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
}
}
@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;
}
}
说明 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());
}
}
text title:纯洁的微笑 description:分享生活和技术
Spring Boot 集成了参数校验、内嵌容器、Restful、JSON 内容,这些技术在进?行Web 开发中必不可少。
Spring Boot 对这些技术进行了包装,让我们在 Web 项目开发过程中非常容易的使用这些技术,降低了开发 Web 项目的技术难度。