一直以来都知道SpringBoot,只是项目中从来没有用过,而且也没有足够的经历,所以一直没有去了解过。
所以,这一篇开始一步步学习这个框架的使用,知识点没什么创新,都是网上出现过无数遍的,我只是整理和自己实践一下,尽量将流程和学习过程中出现的问题贴出来,希望对以后和其他学习的人有帮助。
1.SpringBoot简述
我们先来看看SpringBoot的一些优点:
1. 为所有Spring开发者更快的入门
2. 开箱即用,提供各种默认配置来简化项目配置
3. 内嵌式容器简化Web项目
4. 没有冗余代码生成和XML配置的要求
5. 提供一系列大型企业级项目的功能性特性
总的来说,就是简化了Spring的流程,这个怎么理解呢,我们现在先来看一个SpringBoot的创建流程。
工具:intellij idea
项目管理:Maven
1.1 SpringBoot项目
1.建立项目
(1)new Project
next后,intellij idea会联网查找模板
next,选择添加Web依赖
最后完成的项目结构为:
这里就是整个框架了,我们来实现Web功能:
添加类:
*/
@RestController
@RequestMapping
public class BootController {
@RequestMapping(value="/index",method = RequestMethod.GET)
public String test(){
return "my first SpringBoot";
}
}
然后:
至此,整个框架的搭建就完成了,他的简便简直超出了我的想象,web.xml呢????application.xml呢?????连导包都没几个~
所以,如果你曾经使用Spring的话,现在可以理解SpringBoot对Spring的简化了吧。
这里出现过一点小问题,也贴出来,便于大家解决。
1.无法创建新的class文件,发现Resource文件没有隐射
2.修改后报错:import导不进包
很明显。。。jar包没有导进去,一看,本地仓库还在C盘,所以决定改下仓库
3.紧接着,就出现了下载包龟速
4.于是,又换了一个Maven仓库
在Maven的Setting.xml中修改(setting的位置可能是在IDEA插件文件里面,如果自己设定了,在IDEA的Setting里面也可以看到位置)
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
5.重新快捷更正错误,寻包正常,问题解决
1.2 SpringBoot单元测试
对SpringBoot的Test包的使用
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootMybatisApplicationTests {
@Test
public void contextLoads() {
}
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new BootController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/index").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("my first SpringBoot")));
}
}
测试原理:创建一个空的WebApplicationContext,然后MockMvcRequestBuilders.get(“/index”),访问index
接着判断
.andExpect(content().string(equalTo("my first SpringBoot")));
结果是否为
my first SpringBoot
测试通过显示为:
修改一下,当不通过为:
2.总结
对于SpringBoot越加有兴趣了,这只是最简单的用法,抽空会学习一下复杂的操作。
另外对参考博主表示感谢,让知识学习更加容易,感谢!!
参考:
https://www.jianshu.com/u/092df3f77bca