第一个springboot小demo详解(解决跨域)

前言:

微服务自问世以来就一直很火。天天耳听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")
    @ResponseBody
    public 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 {

    @Bean
    public 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源码地址:github.com/javasmall/S…

微信公众号(关注交流分享):bigsai

转载于:https://juejin.im/post/5d1ac5abe51d451061721128

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值