SpringBoot快速入门与实践
SpringBoot是Java开发中一个非常流行的框架,它简化了基于Spring的应用开发,通过约定优于配置的原则,使得开发者能够快速地构建独立、运行的应用程序。本文将通过图文并茂的方式,介绍如何从零开始搭建一个简单的SpringBoot项目,并实现基本的数据访问和RESTful API。
一、创建SpringBoot项目
在开始之前,确保你的开发环境中已经安装了Java和Maven(或Gradle)。我们使用Spring Initializr来快速创建一个新的SpringBoot项目。访问以下网址:https://start.spring.io/。
-
选择项目类型:选择Maven Project。
-
填写项目信息:输入项目的Group Id、Artifact Id、Java版本等信息。
-
选择依赖:在依赖列表中选择Web、MySQL Driver、MyBatis Framework和Lombok。
-
生成项目:点击“Generate”按钮,下载生成的项目压缩包并解压。
二、项目结构
解压后的项目结构如下:
|-- src
| |-- main
| |-- java
| | |-- com
| | |-- example
| | |-- DemoApplication.java
| | |-- controller
| | | |-- PeopleController.java
| | |-- entity
| | | |-- People.java
| | |-- mapper
| | | |-- PeopleMapper.java
| | |-- service
| | | |-- PeopleService.java
| |-- resources
| |-- application.yml
| |-- mapper
| |-- PeopleMapper.xml
|-- test
|-- java
三、配置数据源
在src/main/resources/application.yml
文件中配置数据源信息:
yamlspring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: 123456
mybatis:
mapper-locations: classpath:mapper/*.xml
四、创建实体类
使用Lombok插件简化代码编写。在src/main/java/com/example/entity
目录下创建People.java
:
java@Data
@NoArgsConstructor
@Entity
@Table(name = "people")
public class People {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "name")
private String name;
@Column(name = "create_time")
private LocalDateTime createTime;
}
五、创建Mapper
在src/main/java/com/example/mapper
目录下创建PeopleMapper.java
:
java@Mapper
public interface PeopleMapper {
List<People> findAllPeople();
}
并在src/main/resources/mapper
目录下创建对应的PeopleMapper.xml
:
xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.PeopleMapper">
<select id="findAllPeople" resultType="com.example.entity.People">
SELECT * FROM people
</select>
</mapper>
六、创建Service
在src/main/java/com/example/service
目录下创建PeopleService.java
:
java@Service
public class PeopleService {
@Autowired
private PeopleMapper peopleMapper;
public List<People> findAll() {
return peopleMapper.findAllPeople();
}
}
七、创建Controller
在src/main/java/com/example/controller
目录下创建PeopleController.java
:
java@RestController
@RequestMapping("/people")
public class PeopleController {
@Autowired
private PeopleService peopleService;
@GetMapping("/selectAll")
public List<People> findAllPeople() {
return peopleService.findAll();
}
}
八、启动项目
在DemoApplication.java
中添加@MapperScan
注解来扫描Mapper接口:
java@SpringBootApplication
@MapperScan("com.example.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
启动项目后,访问http://localhost:8080/people/selectAll
,可以看到返回的所有人员信息。
九、单元测试
在src/test/java
目录下创建单元测试类PeopleMapperTest.java
:
java@RunWith(SpringRunner.class)
@SpringBootTest(classes = DemoApplication.class)
public class PeopleMapperTest {
@Autowired
private PeopleMapper peopleMapper;
@Test
public void findAllPeople() {
List<People> people = peopleMapper.findAllPeople();
people.forEach(System.out::println);
}
}
十、配置Swagger2
为了方便API的测试和文档生成,我们可以添加Swagger2的支持。在pom.xml
中添加依赖:
xml<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
在src/main/java/com/example/config
目录下创建Swagger2.java
:
java@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("People API")
.description("People API description")
.version("1.0")
.build();
}
}
启动项目后,访问http://localhost:8080/swagger-ui.html
可以看到API文档。
至此,一个简单的SpringBoot项目就搭建完成了。通过这个入门案例,你可以了解SpringBoot的基本操作,并在此基础上进行更深入的学习和实践。