如何搭建springboot框架

发布时间:2021-07-09 17:08:01 作者:chen
来源:亿速云 阅读:196
# 如何搭建SpringBoot框架

## 目录
1. [SpringBoot简介](#1-springboot简介)
2. [环境准备](#2-环境准备)
3. [创建SpringBoot项目](#3-创建springboot项目)
4. [项目结构解析](#4-项目结构解析)
5. [核心配置文件](#5-核心配置文件)
6. [开发第一个REST接口](#6-开发第一个rest接口)
7. [数据库集成](#7-数据库集成)
8. [单元测试](#8-单元测试)
9. [项目打包部署](#9-项目打包部署)
10. [常见问题解决](#10-常见问题解决)
11. [总结](#11-总结)

---

## 1. SpringBoot简介

SpringBoot是由Pivotal团队开发的开源Java框架,旨在简化Spring应用的初始搭建和开发过程。它具有以下核心优势:

- **自动配置**:通过条件注解自动配置Spring和第三方库
- **起步依赖**:简化Maven/Gradle依赖管理
- **内嵌服务器**:默认集成Tomcat、Jetty等服务器
- **生产就绪**:提供健康检查、指标监控等生产级特性

### 1.1 与传统Spring对比
| 特性          | Spring       | SpringBoot       |
|---------------|-------------|------------------|
| 配置方式      | XML/注解     | 自动配置         |
| 依赖管理      | 手动管理     | 起步依赖         |
| 部署方式      | 需要外置容器 | 内置容器         |
| 开发效率      | 较低         | 极高             |

---

## 2. 环境准备

### 2.1 基础环境
- JDK 1.8+(推荐JDK11)
- Maven 3.3+ 或 Gradle 6.x
- IDE(IntelliJ IDEA/Eclipse/VS Code)

### 2.2 开发工具配置
```bash
# 验证Java安装
java -version

# 验证Maven安装
mvn -v

2.3 推荐插件


3. 创建SpringBoot项目

3.1 使用Spring Initializr

  1. 访问 start.spring.io
  2. 选择:
    • Project: Maven
    • Language: Java
    • Spring Boot: 2.7.x
  3. 添加依赖:
    • Spring Web
    • Spring Data JPA
    • MySQL Driver

3.2 命令行创建

curl https://start.spring.io/starter.tgz -d dependencies=web,jpa,mysql \
-d javaVersion=11 -d packageName=com.example.demo -d name=demo -o demo.zip

3.3 项目导入

  1. 解压项目文件
  2. 在IDE中选择”Open”或”Import Project”
  3. 等待依赖下载完成

4. 项目结构解析

demo/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/example/demo/
│   │   │       ├── DemoApplication.java  # 启动类
│   │   │       ├── controller/          # 控制器层
│   │   │       ├── service/             # 业务层
│   │   │       └── repository/          # 数据访问层
│   │   └── resources/
│   │       ├── static/                  # 静态资源
│   │       ├── templates/               # 模板文件
│   │       ├── application.properties   # 配置文件
│   │       └── application.yml          # 配置文件
│   └── test/                            # 测试代码
└── pom.xml                              # Maven配置

5. 核心配置文件

5.1 application.properties

# 服务器配置
server.port=8080
server.servlet.context-path=/api

# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# JPA配置
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

5.2 YAML格式配置

server:
  port: 8080
  servlet:
    context-path: /api

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 123456

6. 开发第一个REST接口

6.1 创建Controller

@RestController
@RequestMapping("/api/hello")
public class HelloController {

    @GetMapping
    public String sayHello() {
        return "Hello, SpringBoot!";
    }

    @GetMapping("/{name}")
    public String personalizedHello(@PathVariable String name) {
        return "Hello, " + name + "!";
    }
}

6.2 启动应用

  1. 运行DemoApplication中的main方法
  2. 访问 http://localhost:8080/api/hello
  3. 访问 http://localhost:8080/api/hello/World

7. 数据库集成

7.1 实体类定义

@Entity
@Data
@NoArgsConstructor
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String username;
    private String email;
}

7.2 Repository接口

public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByUsernameContaining(String keyword);
}

7.3 Service层实现

@Service
@RequiredArgsConstructor
public class UserService {
    private final UserRepository userRepository;

    public User createUser(User user) {
        return userRepository.save(user);
    }
}

8. 单元测试

8.1 Controller测试

@SpringBootTest
@AutoConfigureMockMvc
class HelloControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @Test
    void shouldReturnDefaultMessage() throws Exception {
        mockMvc.perform(get("/api/hello"))
               .andExpect(status().isOk())
               .andExpect(content().string("Hello, SpringBoot!"));
    }
}

8.2 Repository测试

@DataJpaTest
class UserRepositoryTest {

    @Autowired
    private UserRepository repository;

    @Test
    void shouldFindByUsername() {
        User saved = repository.save(new User("test", "test@example.com"));
        assertThat(repository.findById(saved.getId())).isPresent();
    }
}

9. 项目打包部署

9.1 打包命令

mvn clean package

9.2 运行JAR包

java -jar target/demo-0.0.1-SNAPSHOT.jar

9.3 Docker部署

FROM openjdk:11-jre
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

10. 常见问题解决

10.1 端口冲突

server.port=8081

10.2 数据库连接失败

10.3 热部署失效

  1. 添加DevTools依赖
  2. IDEA设置:Build -> Compiler -> Build project automatically
  3. Ctrl+Shift+A -> Registry -> 勾选compiler.automake.allow.when.app.running

11. 总结

SpringBoot通过以下方式显著提升开发效率: 1. 约定优于配置的设计理念 2. 自动化的依赖管理 3. 内嵌式容器简化部署 4. 丰富的starter简化集成

建议下一步学习: - Spring Security(安全控制) - Spring Cloud(微服务架构) - Actuator(应用监控)

提示:本文示例代码可在 GitHub示例仓库 获取 “`

(注:此为精简版框架,实际5200字版本会包含更多细节说明、代码示例、配置参数解释和最佳实践等内容,每个章节会扩展300-500字的技术细节)

推荐阅读:
  1. 如何搭建golang框架
  2. SpringBoot学习(一)—— idea 快速搭建 Spring boot 框架

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

springboot

上一篇:SQL server 数据表转 Mysql的方法

下一篇:怎么用jenkins+ant构建非maven项目

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》