第一步:初始化工程,构建工具maven
网站链接:http://start.spring.io/
打开上述网站链接,这个是官网得项目构建网站
选项设置如下图所示
点击按钮下载工程文件,下载完毕导入到开发工具(我用得IDEA),导入完毕,初始化工程,下载jar包,控制台执行命令,mvn clean install,不报错的话,就初始化完成了。
第二步:hello world
在pom文件下加入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>RELEASE</version>
</dependency>
初始化工程目录下新建controller包,在包里面新建HelloController类,代码如下
@Controller
public class HelloController {
@RequestMapping(value = "hello/{id}",method = RequestMethod.GET)
@ResponseBody
public Map<String,Object> helloWord(@PathVariable(value = "id") Integer id){
return "hello "+id;
}
}
运行DemoApplication中的main函数,打开浏览器,输入http://localhost:8080/hello/1
第三步,集成swagger
swagger 是用来生产API文档的,在现在开发模式中,前后端分离的开发模式,逐渐变成了主流趋势,前台负责页面和数据渲染,后台负责业务逻辑处理和提供相关数据,前后台交互就是通过接口文档进行的,一个好的接口说明文档可以降低交易成本,增加开发效率。
引入所需jar包
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
在DemoApplication类的同级目录下新建Swagger2类,代码如下
@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.h52mm.demo.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot Demo API 文档")
.description("我的个人博客:https://blog.csdn.net/qq_29086535")
.termsOfServiceUrl("https://blog.csdn.net/qq_29086535")
.contact("程序猿 黑傻傻")
.version("1.0")
.build();
}
}
在接口类上采用注解对类、方法、参数等进行描述
@Api 作用于类上对类进行说明
@ApiOperation 作用于方法上,对方法进行描述
@ApiParam 作用于参数上,对参数进行描述
还有其他注解,百度一下你就知道了
第三步 集成spring data jpa
spring data jpa 是spring boot推荐使用的orm框架,它是基于hibernate开发的,它提供了基本的增删改查的功能,可以实现很少的配置就能够实现对数据库的基本操作,明显加快了开发效率。
引入jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
在application.properties配置文件中加入
server.port=8081 #项目启动端口号配置
debug=true #开启debug日志
spring.output.ansi.enabled=DETECT #日志
spring.datasource.url=jdbc:mysql://localhost:3306/shop #数据库链接
spring.datasource.username=root #数据库登录用户
spring.datasource.password=123456 #数据库密码
spring.datasource.driver-class-name=com.mysql.jdbc.Driver #数据库驱动
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
新建实体类(和数据库表相对应)
package com.h52mm.demo.domain;
import javax.persistence.*;
import java.util.Date;
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer userId;
@Column(name = "password")
private String pwd;
@Column(name = "username")
private String userName;
private String email;
@Column(nullable = true,name = "telephone")
private String tel;
@Column(name = "regTime")
private Date regTime;
@Column(name = "del")
private Boolean del;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Date getRegTime() {
return regTime;
}
public void setRegTime(Date regTime) {
this.regTime = regTime;
}
public Boolean getDel() {
return del;
}
public void setDel(Boolean del) {
this.del = del;
}
}
新建Repository类并继承 JpaRepository
package com.h52mm.demo.domain;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface UserRepository extends JpaRepository<User,Integer>{
public List<User> findAllByDel(Boolean del);
}
调用 spring data jpa 提供了最基本的对数据库的操作,包括save()、findAll()等
@Override
public List<User> getUserAll() {
List<User> list=userRepository.findAllByDel(false);
return list;
}
@Override
public List<User> saveUser(User user) {
userRepository.save(user);
return userRepository.findAll();
}