springboot入门demo详解(解决跨域)
前言:
微服务自问世以来就一直很火。天天耳听Springboot,Springcloud,docker,这些名词,以前没学Springboot的时候刚学ssm的时候,,说实话头都炸了。单独一个个学习Spring,Springmvc,mybatis还能将就配置,记得当初把三个整合的时候可是费了好大的功夫,然后又将ssm转成idea的maven项目又转了一大圈,找了好久,n个bug才把ssm搭成功。
然后学完ssm的配置的时候,发现,哎,我每次都复制黏贴一下好像也挺方便的哎。还要怎么简介呢
然而,当我真正接触springboot的时候,发现,呵呵,我以前真的是无知。
Springboot本质也是Spring程序,他有Springmvc和Spring的功能。但是传统的项目就是配置地狱,需要各种整合,而Springboot将各个地方的整合变得简单了很多或者省去了一些配置。
Springboot的优点有(来源百科)
- 创建独立的
Spring
应用程序 - 嵌入的
Tomcat
,无需部署WAR文件 简化
Maven配置自动配置
Spring- 提供生产就绪型功能,如指标,健康检查和外部配置
- 绝对没有代码生成并且对XML也没有配置要求 [1]
Springboot跟普通框架的不同之处就是他将web程序打包成jar文件,内置tomcat。也省区tomcat的配置,只需要Springboot里面声明一些端口,url即可。
下面就记录创建第一个Springboot功能。
- 创建Springboot程序
- 勾上web,如果需要mysql,mybatis或者redis也可以勾上,也可以不勾,反正maven方便。
- 新建一个controller文件夹,将目录改成类似形式(只有一个主函数,对应路径位置很重要,否则可能会出现访问404)
- 编写一个controller,你如果是使用前后端分离直接加上@responsebody注解就可以,不需要去找jackson那几个包,springboot已经帮你搞好了,满足你的正常需求。controller的代码:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;
import java.util.Map;@RestController
public class testcontroller {@GetMapping("demo1")public String demo1() {return "Hello bigsai";}@RequestMapping("demo2")@ResponseBodypublic Map demo2(){Map map=new HashMap();map.put(1,"fads");map.put("55","55");return map;}
}
直接启动主main函数即可。看一下测试情况
这是最初始化的Springboot访问url,如果你想指定端口,指定path,可以在resources里面的appilication.properties中配置(有的是im啥)如下
这样就可以,更多配置就先不介绍了。
当然如果你前后端分离,可能会遇到跨域问题。只需加个配置类即可:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {@Beanpublic CorsFilter corsFilter() {final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();final CorsConfiguration corsConfiguration = new CorsConfiguration();/*是否允许请求带有验证信息*/corsConfiguration.setAllowCredentials(true);/*允许访问的客户端域名*/corsConfiguration.addAllowedOrigin("*");/*允许服务端访问的客户端请求头*/corsConfiguration.addAllowedHeader("*");/*允许访问的方法名,GET POST等*/corsConfiguration.addAllowedMethod("*");urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);return new CorsFilter(urlBasedCorsConfigurationSource);}
}
github源码地址:https://github.com/javasmall/SpringbootDemo/tree/master/springboot_firstdemo
如果对后端、爬虫、数据结构算法
等感性趣欢迎关注我的个人公众号交流:bigsai
springboot入门demo详解(解决跨域)相关推荐
- 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题
继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...
- springboot中通过cors协议解决跨域问题
2019独角兽企业重金招聘Python工程师标准>>> 1.对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现. 针对跨域问题,我们可 ...
- nginx入门级详解及跨域问题的解决
代理和反向代理的概念? 不知道有多少人跟我一样,对代理和反向代理蒙蔽的,今天就来给大家普及一下. 在很久以前小明去吃饭,往往就是走进一家饭店然后打开菜单,点着他最爱的红烧肉,然后等着老板上菜,吃完交钱 ...
- 详解浏览器跨域访问的几种办法
摘要: 本文讨论web前端安全问题以及应对措施,浏览器同源策略以及对资源跨域访问的几种解决方案 本文分享自华为云社区<Web安全和浏览器跨域访问>,原文作者:kg-follower . ...
- SpringBoot 入门知识点详解
Spring Boot 入门项目 springboot 介绍 springboot 引言 springboot 特点 springboot 约定大于配置 springboot 入门项目 1.引入项目依 ...
- Cookie详解与跨域问题
Http是无状态的协议,客户端每次对服务端的http请求都是独立的,不受该客户端其它的请求的影响. 为了把Http这个无状态协议变的与上下文有关系,我们引入了会话(Session)的概念,具有相同会话 ...
- 【华为云技术分享】详解浏览器跨域的几种方法
1前言 2背景知识介绍 2.1同源政策 2.2为什么要有跨域限制 3浏览器跨域的解决方案 3.1 CORS标准 3.2 CORS跨域判定的总体流程 3.3简单请求 3.4非简单请求 3.5 CORS相 ...
- js跨域解决方案php,详解js跨域原理以及2种解决方案_javascript技巧
1.什么是跨域 我们经常会在页面上使用ajax请求访问其他服务器的数据,此时,客户端会出现跨域问题. 跨域问题是由于javascript语言安全限制中的同源策略造成的. 简单来说,同源策略是指一段脚本 ...
- MyBatis-Plus入门Demo详解
一.简介: 引用官方文档(本文主要参考官方文档示例): MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生 ...
最新文章
- CVPR2020论文解读:三维语义分割3D Semantic Segmentation
- Apache Flink Meetup 8.7 深圳站,企业实践 + 1.14 版本预热
- 计算机英语的语言特点及教学,计算机英语的语言特点及教学.doc
- 今天学习了无序列表和有序列表和使用HTML5创建表格
- python面向对象三大特性6大原则_【Python学习笔记】面向对象三大特性
- struts 2.3.8备忘
- 私藏的18个黑科技网站,想找什么软件就找什么软件!!!
- windows defender卸载_16款仙级软件一定能提高你的Windows舒适度,工作效率翻倍
- TCP有限状态机(全网最全)
- python中len用法_简单介绍Python中的len()函数的使用
- Win10 系统设置共享文件
- python简单算法题_python - 简单算法题 - 列表偏移
- Pytorch版本过高产生的RuntimeError: Legacy autograd function with non-static forward method is deprecated.
- 深度 | 5分钟读懂阿里零售通智慧供应链平台
- H桥驱动电机,STM32 PWM互补输出功能误用分析
- 第三方INF不包含数字签名信息
- 微信订阅号,获取用户openid
- php网上交友系统,解决方案-PHP交友程序_交友源码_征婚交友系统- OELOVE官方网站...
- 12306快速刷新火车票
- 软件外包项目管理6 - 项目收尾
热门文章
- 跨链Cosmos(3)IBC协议二
- Hyperledger Fabric 核心模块(1)整体概述
- (chap4 Http状态码) 4XX
- C++ Primer 5th笔记(chap 13 拷贝控制)拷贝赋值函数
- C++(三)——类和对象(上)
- 现代密码学3.7--CCA安全
- buu-[RoarCTF2019]polyre(控制流平坦化,虚假控制流程)
- [专栏目录]-Crypto学习笔记目录
- [ATF]-ATF启动--BL31跳转到optee和uboot
- Python正则表达式之额外补充(7)