springboot(一)小白入门

欲善其事,必利其器

1、安装JDK1.8+

2、安装eclipse4.7.3a

到eclipse官网下载最新的4.7.3a版本的eclipse,这一步是很重要的!

eclipse官网:https://www.eclipse.org/getting_started/

3、完善eclipse

给eclipse安装Maven和Springsource-Tool-Suite-3.9.4.RELEASE-e4.7.3a(也就是STS,也就是SpringFramework,注意版本)。

STS官网:https://spring.io/tools/sts/all

STS下载下边这个版本,不要下错了,下了以后装到eclipse里边去

springboot(一)小白入门

Maven可以到eclipse自带的市场里下载安装。

一切准备就绪以后,启动elicpse,可以看到如下界面:

springboot(一)小白入门

4、建立springboot项目

在eclipse中鼠标右键如下图:

springboot(一)小白入门

springboot(一)小白入门

如下界面中,左下部分的箭头,可以打开看看,里边有我们常见的SpringMVC、MyBatis等,这就是为什么要用SpringBoot的原因,所有你常用的,他都已经给你集成进去了,而你要做的,就是勾选它,仅此而已,点击Finish,整个架构,就基本成型了。

springboot(一)小白入门

确定后的结构是这样的

springboot(一)小白入门

注意框框中的文件,是已经自动生成的

springboot(一)小白入门

我们需要新建的是HelloController类,注意结构,HelloController类要放在demo文件夹和Application是一个路径,具体内容如下:

package com.ran.learn.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ran.learn.web.MyProperties;

@RestController
public class HelloController {

@RequestMapping("/hallo")
public String hallo() {
return "Hello World";
}

}

运行该方法,像本地程序一样:

springboot(一)小白入门

在浏览器打开:http://localhost:8080/hallo,开启你ringboot的第一个hello world程序

springboot(一)小白入门


DemoApplicationTests.java可以当做junit测试用,具体代码如下:

package com.ran.learn.demo;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;


//@RunWith(SpringRunner.class)
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class DemoApplicationTests {
private MockMvc mvc;

@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
}

@Test

public void getHello() throws Exception {

                //模拟请求

mvc.perform(MockMvcRequestBuilders.get("/hallo").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World")));
}

/*@Test
public void contextLoads() {//测试启动
}*/

}


如果遇到问题,可以发信息一起交流,一起进步。


闲言碎语:说说为什么有必要学SpringBoot

从小程序员开始到项目组长,虽然听起来有进步,但是本质仍然是一名程序员,只是做的事情多一些,你需要会的技术要更多,也更细腻。

之前搭框架,要搞一堆的jar,有的jar包你还不一定能随地找的到。那个时候早期的项目还没有maven,都是纯手工导jar包的,有的jar包在网上还不一定好找,公司有公共服务器存储jar包已经算比较牛的公司了。单单版本冲突,从网上找需要的其它jar,在一个项目之初就让你想向天再借五百年。其实这不奇怪,就像,即使到了现在,有些公司也还仍然没有使用Maven一样。

jar包搞定了,可以开心了吧,不,还有xml配置问题,一堆的xml,当这些xml和jar连锁出现问题的时候,你会想向天再借一千年!

jar和xml搞定了,可以开心了吧,不,项目经理说:一点小事情,怎么这么慢?!所以,程序员都是有内心极强大的人,真男(女)人!

到了后来,项目终于可以顺利开发并上线了。客户又来了:我们的软件需要扩容、扩服务器、扩这、扩那~~~

jar的问题,再来一遍!xml配置问题,再来一遍!等等

说到这里,你应该已经领悟,Springboot多么强大了!不过还不止这些。

看到有些朋友问spring、springmvc、springboot什么关系,在这里班门弄斧一下,因为表达能力不好,我就通俗举栗子吧:

Spring是一个大家族,这个家的主人需要管很多事情,比如造车、造船、造飞机等,但是主人觉得这样太累了,就搞了个大总管,什么都交给他来管

Springboot是这个大家族的大总管,叫郭老大大总管吧,有一天,主人要造飞机,需要用一个框架,于是总管就给他从仓库里,拿出了自己只有到了晚上才会偷偷拿出来玩的SpringMVC。

SpringMVC是大总管管理的一个前端框架,也是大总管仓库里的框架之一,仓库里有各种各样的工具,当然也包括Spring自身的核心包,就像主人自己的随身物品也交给总管管理的意思。

班门弄斧,理解不到,敬请指教。

最后给大家分享一个更为详细的入门文章,因为Springboot版本更新后代码有所变化,我只是在这个基础上做了一些修改和后续补充,写的不好,请大家见谅:

程序猿DD-翟永超 创作:http://blog.didispace.com/spring-boot-learning-1/  (侵删)