前言:
微服务自问世以来就一直很火。天天耳听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功能。
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源码地址:https://github.com/javasmall/SpringbootDemo/tree/master/springboot_firstdemo