springboot应用场景及部分区别于springmvc的注解
SpringBoot使用场景:1.有spring的地方 2. J2ee应用 3.微服务 @Controller:修饰class,用来创建处理http请求的对象@RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseB
SpringBoot
使用场景:1.有spring的地方 2. J2ee应用 3.微服务
@Controller:修饰class,用来创建处理http请求的对象
@RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置
@ResponseBody,默认返回json格式。
@RequestMapping:配置url映射
请求类型 | URL | 说明 |
GET | /users | 查询用户列表 |
Post | /users | 创建一个用户 |
Get | /users/id | Id查询用户 |
Post | /users/id | Id更新用户 |
Delete | /users/id | Id删除用户 |
事务控制在service中,@transaction() required support
异步任务:@EnableAsync 发送短信,邮件,消息推送,运维任务
定时任务:@EnableScheduling
拦截器:@Configuration extends WebMvcConfigurerAdapter
重写 addInterceptors
registry.addInterceptor(new OneInterceptor()).addPathPatterns(“/one/**”);
· 场景:由于用Spring boot编写了关于Ranger策略以及Hive脱敏相关的接口,并以http方式向外部提供。为了防止请求被非法模仿,因而编写了一个访问Ip 鉴权类,也就是设置了访问ip白名单,只有在白名单上的ip才可以访问接口。
· Spring boot自带HandlerInterceptor,可通过继承它来实现拦截功能,其的功能跟过滤器类似,但是提供更精细的的控制能力:在request被响应之前、request被响应之后、视图渲染之前以及request全部结束之后。我们不能通过拦截器修改request内容,但是可以通过抛出异常(或者返回false)来暂停request的执行。
/**
* 在请求处理之前进行调用(Controller方法调用之前)调用,
* 返回true 则放行, false 则将直接跳出方法
*/
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
String ip = getIpAddr(request);
String ipStr = PropertyUtil.getProperty("ipWhiteList"); // 获取可以访问系统的白名单
String[] ipArr = ipStr.split("\\|");
List<String> ipList = java.util.Arrays.asList(ipArr);
if (ipList.contains(ip)) {
logger.info("the request ip is : " + ip);
return true;
} else {
logger.error(ip + " is not contains ipWhiteList .......");
response.setHeader("Content-type","text/html;charset=UTF-8");//向浏览器发送一个响应头,设置浏览器的解码方式为UTF-8
String data = "您好,ip为" + ip + ",暂时没有访问权限,请联系管理员开通访问权限。";
OutputStream stream = response.getOutputStream();
stream.write(data.getBytes("UTF-8"));
return false;
}
}
Spring boot 整合 thymeleaf
Thymelead 常用使用方法:
基本使用方式 对象引用方式 时间类型转换 text与utext url css js引入
Th:if th:each th:swith th:case
更多推荐
所有评论(0)