SpringBoot MVC 拦截器
SpringBoot MVC
环境搭建
在pom.xml添加spring-boot-starter-web
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
修改application.yml配置
- spring:
- datasource:
- username: system
- password: 123456
- url: jdbc:oracle:thin:@localhost:1521:XE
- driverClassName: oracle.jdbc.OracleDriver
- server:
- port: 8889
编写Controller,使用@RequestMapping和@RestController
- @RestController
- public class BookService {
- @Autowired
- private BookDao bookDao;
- @RequestMapping(value="/book",method=RequestMethod.GET)
- public List<Book> loadAll(){
- return bookDao.findAll();
- }
- @RequestMapping(value="/book/{id}",method=RequestMethod.GET)
- public Book load(@PathVariable("id")int id){
- return bookDao.findById(id);
- }
- @RequestMapping(value="/book/{id}",method=RequestMethod.DELETE)
- public boolean delete(@PathVariable("id")int id){
- int row = bookDao.deleteById(id);
- if(row >= 1){
- return true;
- }else{
- return false;
- }
- }
- @RequestMapping(value="/book/{id}",method=RequestMethod.PUT)
- public boolean update(@PathVariable("id")int id, @RequestBody Book book){
- book.setId(id);
- int row = bookDao.update(book);
- if(row >= 1){
- return true;
- }else{
- return false;
- }
- }
- @RequestMapping(value="/book",method=RequestMethod.POST)
- public boolean add(@RequestBody Book book){
- bookDao.save(book);
- return true;
- }
- }
编写Filter,解决Ajax调用跨域问题
- @WebFilter(servletNames={"dispatcherServlet"})
- public class AjaxDomainFilter implements Filter{
- @Override
- public void destroy() {
- // TODO Auto-generated method stub
- }
- @Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
- throws IOException, ServletException {
- HttpServletResponse httpResponse = (HttpServletResponse)response;
- httpResponse.setHeader("Access-Control-Allow-Origin", "*");//设置允许哪些域名应用进行ajax访问
- httpResponse.setHeader("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
- httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type");
- chain.doFilter(request, response);//调用后续serlvet
- }
- @Override
- public void init(FilterConfig arg0) throws ServletException {
- // TODO Auto-generated method stub
- }
- }
配置Filter,使用@WebFilter和@ServletComponentScan
- @SpringBootApplication//开启扫描、自动配置、bean定义
- @MapperScan(basePackages={"cn.xdl.dao"})//开启扫描Mapper接口
- @ServletComponentScan//开启WebFilter、WebServlet、WebListener配置支持
- public class BootApplication {
- public static void main(String[] args){
- SpringApplication.run(BootApplication.class, args);
- }
- }
修改pc_web前端的common.js,将请求路径改为
var path = "http://localhost:8889";
SpringBoot 热启动
当修改完毕程序代码后,可以自动重新部署。
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-devtools</artifactId>
- </dependency>
如果修改了pom.xml定义,要从新启动,修改了java代码可以自动重新启动。
SpringBoot MyBatis分页
- <dependency>
- <groupId>com.github.pagehelper</groupId>
- <artifactId>pagehelper-spring-boot-starter</artifactId>
- <version>1.2.3</version>
- </dependency>
然后在调用查询代码之前执行PageHelper.startPage方法
- Page page = PageHelper.startPage(p, 3);
- //分页查询
- List list = bookDao.findAll();
- //获取总页数
- int totalPage = page.getPages();
SpringBoot 拦截器
编写拦截器类,实现HandlerInterceptor接口,实现PreHandle、PostHandle、afterCompletion方法
- public class AjaxDomainInterceptor implements HandlerInterceptor{
- @Override
- public boolean preHandle(
- HttpServletRequest request,
- HttpServletResponse response, Object handler)
- throws Exception {
- response.setHeader("Access-Control-Allow-Origin", "*");//设置允许哪些域名应用进行ajax访问
- response.setHeader("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
- response.setHeader("Access-Control-Allow-Headers", "Content-Type");
- return true;
- }
- //...
- }
编写配置类,继承WebMvcConfigurerAdapter,重写addInterceptors方法
- //@Configuration
- @Component
- public class InterceptorConfiguration extends WebMvcConfigurerAdapter{
- public void addInterceptors(InterceptorRegistry registry) {
- //配置拦截器
- AjaxDomainInterceptor ajaxDomain = new AjaxDomainInterceptor();
- registry.addInterceptor(ajaxDomain).addPathPatterns("/**");
- }
- }
SpringBoot MVC 拦截器的更多相关文章
- mvc拦截器
在ASP.NET MVC中,有三种拦截器:Action拦截器.Result拦截器和Exception拦截器.这里说的是第一种和第三种.其实所谓的ASP.NET MVC拦截器,也没什么神秘的,就是一个普 ...
- SpringBoot自定义拦截器实现IP白名单功能
SpringBoot自定义拦截器实现IP白名单功能 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/8993331.html 首先,相关功能已经上线了,且先让我先 ...
- SpringBoot使用拦截器
SpringBoot的拦截器只能拦截流经DispatcherServlet的请求,对于自定义的Servlet无法进行拦截. SpringMVC中的拦截器有两种:HandlerInterceptor和W ...
- SpringBoot 注册拦截器方式及拦截器如何获取spring bean实例
SpringBoot 注册拦截器时,如果用New对象的方式的话,如下: private void addTokenForMallInterceptor(InterceptorRegistry regi ...
- SSM(spring mvc+spring+mybatis)学习路径——2-2、spring MVC拦截器
目录 2-2 Spring MVC拦截器 第一章 概述 第二章 Spring mvc拦截器的实现 2-1 拦截器的工作原理 2-2 拦截器的实现 2-3 拦截器的方法介绍 2-4 多个拦截器应用 2- ...
- spring mvc 拦截器的使用
Spring MVC 拦截器的使用 拦截器简介 Spring MVC 中的拦截器(Interceptor)类似于 Servler 中的过滤器(Filter).用于对处理器进行预处理和后处理.常用于日志 ...
- 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor
[Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...
- Spring Boot 2.X(九):Spring MVC - 拦截器(Interceptor)
拦截器 1.简介 Spring MVC 中的拦截器(Interceptor)类似于 Servlet 开发中的过滤器 Filter,它主要用于拦截用户请求并作相应的处理,它也是 AOP 编程思想的体现, ...
- springboot+springmvc拦截器做登录拦截
springboot+springmvc拦截器做登录拦截 LoginInterceptor 实现 HandlerInterceptor 接口,自定义拦截器处理方法 LoginConfiguration ...
随机推荐
- Python-10行代码实现3个数据可视化
阅读本文约“1分钟” 最近将Python作为第二编程语言,进行了了解与学习,可以说它的包是很强大的.这次的demo仅仅不到10行代码就可以实现三个数据可视化的小实例. 我们将要使用到matplotli ...
- 【Spring】29、SpringBoot中@SpringBootApplication的使用
之前用户使用的是3个注解注解他们的main类.分别是@Configuration,@EnableAutoConfiguration,@ComponentScan.由于这些注解一般都是一起使用,spri ...
- JS中数组重排序方法
在数组中有两个可以用来直接排序的方法,分别是reverse()和sort().下面通过本文给大家详细介绍,对js数组重排序相关知识感兴趣的朋友一起看看吧 1.数组中已存在两个可直接用来重排序的方法:r ...
- JS之函数实际参数转换成数组的方法[].slice.call(arguments)
实际参数在函数中我们可以使用 arguments 对象获得 (注:形参可通过 arguments.callee 获得),虽然 arguments 对象与数组形似,但仍不是真正意义上的数组. 我们可以通 ...
- Python3.6 下 安装MySql
https://pypi.python.org/pypi/mysqlclient/1.3.10 该网页下下载 Python-3.5及上版本的扩展的mysql驱动. 下载的是一个.whl文件,下载目录为 ...
- leetcode-66.加一
leetcode-66.加一 题意 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 0 之外,这个 ...
- 微软语音引擎 TTS 最基本使用
TTS(TextToSpeak) 需求:需要借助程序实现 文字合成语音/语音识别. TTS 介绍就不说了,这里介绍非常详细 >>> TTS详细介绍 + SAPI(微软的TTS语音 ...
- Pycharm启动后加载anaconda一直updating indices造成Pycharm闪退甚至电脑崩溃
可能跟anaconda文件夹有一定关系 网上找找解决方案,似乎很多人有同样的困扰! 知乎-pycharm启动后总是不停的updating indices...indexing? stackoverfl ...
- (后端)项目中的错误之java中判断字符里面含有某些字符
数据库的数据出现了数据错误.找到原因是因为代码里面Spring的判断所导致的.其实就是判断字符里有01,走这里,有02,走那里,全是if,但是是类似indexOf的那种判断,偏偏有一个数据是0102, ...
- python 正则表达式中反斜杠(\)的麻烦和陷阱
这里是一点小心得:由于下面两个原因,在正则表达式中使用反斜杠就会产生了一个双重转换的问题. (1).python自身处理字符串时,反斜杠是用于转义字符 (2).正则表达式也使用反斜杠来转义字符 ...