现在微服务已经成为互联网的热点,现在主流的微服务框架阿里的Dubbo,以及现在热门的SpringCloud,而SpringCloud是基于Spring Boot的结构上进行开发的。相对于我们以前开发项目使用到的SSM(Spring+Spring MVC+mybatis)和更早期使用的SSH(Spring+Struts2+Hibernate),Spring Boot
目的是用来简化新Spring应用的初始搭建以及开发过程也就是简化我们在项目中要配置一大堆的配置文件的问题。
一、本教程环境
- IDE : IntelliJ IDEA 2017.1.4 x64
- JDK : 1.8
- SpringBoot :2.0.2.RELEASE
二、搭建SpringBoot工程
1.1 使用IDEA Spring Initializr 构建SpringBoot工程
用New Module进入创建选择区,选择Spring Initializr
选择下一步,进入依赖勾选页面。
这里就只勾选一个web(后续如果要引入其他的依赖再进行引入)继续下一步就好了
提示:在idea中,Project是相当于Eclipse中的一个工作空间,Module就相当于一个工程。
新建完成后,能看到如下的目录结构:
SpringBootDemoApplication这个是SpringBoot的启动类,里面有一个main的方法,主要得作用是启动整个工程。(因为SpringBoot是自带Tomcat的,所以我们是不需要额外的配置Tomcat)
1.2 编写测试用例
工程已经搭建完成,接着编写一个简单的测试用例,采用MVC的思想进行分层,分为bean层(也可以是pojo、model)、service层、controller层
结构如下:
三、Hello World测试实例编写
3.1新建UserBean实体
public class UserBean {
private String userName;
private String address;
private int age;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "UserBean{" +
"userName='" + userName + '\'' +
", address='" + address + '\'' +
", age=" + age +
'}';
}
3.2、新建UserService接口
public interface UserService {
public String sayHello(UserBean user);
}
3.3、编写UserServiceImpl
@Service
public class UserServiceImpl implements UserService{
@Override
public String sayHello(UserBean user) {
return "Hello,"+user.getUserName()+"!"+"欢迎访问SpringBoot。";
}
}
@Service这个标签是必须要加的,不然待会项目启动,访问时会直接报错
3.4、编写Controller层
我们先用Spring MVC中的习惯先编写一个测试类进行请求
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "sayHello")
@ResponseBody
public String sayHello(){
return "Hello,欢迎访问SpringBoot项目。";
}
}
这种就是我们典型的Spring MVC的Controller层的编写习惯。
记下来,我们启动SpringBootDemoApplication这个类进行测试。
右键SpringBootDemoApplication选择Debug模式进行启动
出现如下结果表明启动成功了.
表红处,可以看到SpringBoot为我们分配了8080的端口。
3.4、打开浏览器,输入http://127.0.0.1:8080/sayHello 进行访问
结果如下图
注意:SpringBoot进行请求访问时,这里是不是很奇怪不用加上项目名,以往我们SSM,SSH项目请求是都要,没错SpringBoot的项目在进行请求访问时,我们测试就不用输入项目名。
使用@RestController进行访问,
将@Controller换成@RestController 同时将@ResponseBody去掉,重新再测试一遍。
其实@RestController == @Controller + @ResponseBody
3.4.2、使用@RequestParam进行参数接收
@RequestMapping(value = "sayUserHello")
public String sayUserHello(@RequestParam(name = "userName")String userNmae){
UserBean user = new UserBean();
user.setUserName(userNmae);
return userService.sayHello(user);
}
输入
http://127.0.0.1:8080/sayUserHello?userName=Martin
进行访问,返回结果: