SpringBoot学习-(1)第一个小例子
也是刚刚接触SpringBoot不久,本系列博客仅作为学习笔记,记录学习的过程。
大牛可跳过。
1.springboot是什么
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
2.springboot的特点
- 创建独立的Spring应用程序
- 嵌入的Tomcat,无需部署WAR文件
- 简化Maven配置
- 自动配置Spring
- 提供生产就绪型功能,如指标,健康检查和外部配置
- 绝对没有代码生成和对XML没有要求配置
3.创建一个小例子
1)创建项目
使用maven创建一个项目
2)配置pom.xml文件
pom.xml配置文件怎么配呢,不知道!那么去官网看看怎么配置的!
从spring的官网我们看到spring已经给我们列出了最基本的配置。需要继承自spring-boot-starter-parent,这里做了基本的配置和依赖,所以只要在这里指定了版本,所以后面在引入其他依赖包的时候不用指定版本号,因为spring-boot会根据配置的spring-boot-starter-parent版本自动寻找并下载依赖。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.boot</groupId>
<artifactId>spring-boot-study</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
配置完之后,打开pom依赖。发现springboot自动为我们下载好了所有的jar包。这就是springboot简单的原因。
3)创建一个实体
UserInfo
package com.tang.bean;
public class UserInfo {
private Integer id;
private String userName;
private String loginName;
private String password;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
4)创建一个controller
UserInfoController
package com.tang.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.tang.bean.UserInfo;
/** * 这里的@RestController相当于@Controller+@ResponseBody * @author Tang */
@RestController
public class UserInfoController {
@RequestMapping("/getUser")
public UserInfo getUserInfo(){
UserInfo userInfo = new UserInfo();
userInfo.setId(1);
userInfo.setUserName("张三");
userInfo.setLoginName("zhangsan");
userInfo.setPassword("123456");
userInfo.setAge(12);
return userInfo;
}
}
当然也可以使用其他方式配置controller如:
@Controller
public class UserInfoController{
@RequestMapping(value="/getUser")
@ResponseBody
public UserInfo getUserInfo(){
UserInfo userInfo = new UserInfo();
userInfo.setId(1);
userInfo.setUserName("张三");
userInfo.setLoginName("zhangsan");
userInfo.setPassword("123456");
userInfo.setAge(12);
return userInfo;
}
}
或者
@Controller
@ResponseBody
public class UserInfoController{
@RequestMapping(value="/getUser")
public UserInfo getUserInfo(){
UserInfo userInfo = new UserInfo();
userInfo.setId(1);
userInfo.setUserName("张三");
userInfo.setLoginName("zhangsan");
userInfo.setPassword("123456");
userInfo.setAge(12);
return userInfo;
}
}
不过这里建议使用@RestController注解。
5)创建启动类
App
这里的App所在的位置是有要求的,单并不是严格要求。
package com.tang;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
6)启动
该怎么启动呢?没有web.xml,没有WebContent。
直接右键启动:run as ->Java Application即可
看到启动的端口是8080。
7)测试结果
访问路径:http://localhost:8080/getUser
getUser方法没有添加@ResponseBody,直接就可以将json返回(如果需要返回字符串,则只需要将返回值类型设置为String,返回String类型即可,这里不做展示)。
这是因为Springboot内部是通过jackson对对象进行解析的。
到此springboot的第一个小例子就介绍完了。有没有觉得很简单。。。
还没有评论,来说两句吧...