前言:

微服务自问世以来就一直很火。天天耳听Springboot,Springcloud,docker,这些名词,以前没学Springboot的时候刚学ssm的时候,,说实话头都炸了。单独一个个学习Spring,Springmvc,mybatis还能将就配置,记得当初把三个整合的时候可是费了好大的功夫,然后又将ssm转成idea的maven项目又转了一大圈,找了好久,n个bug才把ssm搭成功。
然后学完ssm的配置的时候,发现,哎,我每次都复制黏贴一下好像也挺方便的哎。还要怎么简介呢
然而,当我真正接触springboot的时候,发现,呵呵,我以前真的是无知。

Springboot本质也是Spring程序,他有Springmvc和Spring的功能。但是传统的项目就是配置地狱,需要各种整合,而Springboot将各个地方的整合变得简单了很多或者省去了一些配置。
Springboot的优点有(来源百科)

  1. 创建独立的Spring应用程序
  2. 嵌入的Tomcat,无需部署WAR文件
  3. 简化Maven配置
  4. 自动配置Spring
  5. 提供生产就绪型功能,如指标,健康检查和外部配置
  6. 绝对没有代码生成并且对XML也没有配置要求 [1]

Springboot跟普通框架的不同之处就是他将web程序打包成jar文件,内置tomcat。也省区tomcat的配置,只需要Springboot里面声明一些端口,url即可。

下面就记录创建第一个Springboot功能。

  1. 创建Springboot程序
  2. 勾上web,如果需要mysql,mybatis或者redis也可以勾上,也可以不勾,反正maven方便。
  3. 新建一个controller文件夹,将目录改成类似形式(只有一个主函数,对应路径位置很重要,否则可能会出现访问404)
  4. 编写一个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详解(解决跨域)相关推荐

  1. 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题

    继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...

  2. springboot中通过cors协议解决跨域问题

    2019独角兽企业重金招聘Python工程师标准>>> 1.对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现. 针对跨域问题,我们可 ...

  3. nginx入门级详解及跨域问题的解决

    代理和反向代理的概念? 不知道有多少人跟我一样,对代理和反向代理蒙蔽的,今天就来给大家普及一下. 在很久以前小明去吃饭,往往就是走进一家饭店然后打开菜单,点着他最爱的红烧肉,然后等着老板上菜,吃完交钱 ...

  4. 详解浏览器跨域访问的几种办法

    摘要: 本文讨论web前端安全问题以及应对措施,浏览器同源策略以及对资源跨域访问的几种解决方案 本文分享自华为云社区<Web安全和浏览器跨域访问>,原文作者:kg-follower   . ...

  5. SpringBoot 入门知识点详解

    Spring Boot 入门项目 springboot 介绍 springboot 引言 springboot 特点 springboot 约定大于配置 springboot 入门项目 1.引入项目依 ...

  6. Cookie详解与跨域问题

    Http是无状态的协议,客户端每次对服务端的http请求都是独立的,不受该客户端其它的请求的影响. 为了把Http这个无状态协议变的与上下文有关系,我们引入了会话(Session)的概念,具有相同会话 ...

  7. 【华为云技术分享】详解浏览器跨域的几种方法

    1前言 2背景知识介绍 2.1同源政策 2.2为什么要有跨域限制 3浏览器跨域的解决方案 3.1 CORS标准 3.2 CORS跨域判定的总体流程 3.3简单请求 3.4非简单请求 3.5 CORS相 ...

  8. js跨域解决方案php,详解js跨域原理以及2种解决方案_javascript技巧

    1.什么是跨域 我们经常会在页面上使用ajax请求访问其他服务器的数据,此时,客户端会出现跨域问题. 跨域问题是由于javascript语言安全限制中的同源策略造成的. 简单来说,同源策略是指一段脚本 ...

  9. MyBatis-Plus入门Demo详解

    一.简介: 引用官方文档(本文主要参考官方文档示例): MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生 ...

最新文章

  1. CVPR2020论文解读:三维语义分割3D Semantic Segmentation
  2. Apache Flink Meetup 8.7 深圳站,企业实践 + 1.14 版本预热
  3. 计算机英语的语言特点及教学,计算机英语的语言特点及教学.doc
  4. 今天学习了无序列表和有序列表和使用HTML5创建表格
  5. python面向对象三大特性6大原则_【Python学习笔记】面向对象三大特性
  6. struts 2.3.8备忘
  7. 私藏的18个黑科技网站,想找什么软件就找什么软件!!!
  8. windows defender卸载_16款仙级软件一定能提高你的Windows舒适度,工作效率翻倍
  9. TCP有限状态机(全网最全)
  10. python中len用法_简单介绍Python中的len()函数的使用
  11. Win10 系统设置共享文件
  12. python简单算法题_python - 简单算法题 - 列表偏移
  13. Pytorch版本过高产生的RuntimeError: Legacy autograd function with non-static forward method is deprecated.
  14. 深度 | 5分钟读懂阿里零售通智慧供应链平台
  15. H桥驱动电机,STM32 PWM互补输出功能误用分析
  16. 第三方INF不包含数字签名信息
  17. 微信订阅号,获取用户openid
  18. php网上交友系统,解决方案-PHP交友程序_交友源码_征婚交友系统- OELOVE官方网站...
  19. 12306快速刷新火车票
  20. 软件外包项目管理6 - 项目收尾

热门文章

  1. 跨链Cosmos(3)IBC协议二
  2. Hyperledger Fabric 核心模块(1)整体概述
  3. (chap4 Http状态码) 4XX
  4. C++ Primer 5th笔记(chap 13 拷贝控制)拷贝赋值函数
  5. C++(三)——类和对象(上)
  6. 现代密码学3.7--CCA安全
  7. buu-[RoarCTF2019]polyre(控制流平坦化,虚假控制流程)
  8. [专栏目录]-Crypto学习笔记目录
  9. [ATF]-ATF启动--BL31跳转到optee和uboot
  10. Python正则表达式之额外补充(7)