SpringBoot框架搭建教程分享

SpringBoot框架搭建教程分享

SpringBoot是基于Spring框架的一种快速构建Java应用程序的开源框架。它为Java开发者提供了一种简单快速的方式来构建强大的Java应用程序。在本篇文章中,我们将会详细讲解如何使用SpringBoot搭建一个Java应用程序,并提供两个示例说明帮助大家更加深入的学习和理解。

第一部分:基础框架搭建

在进行SpringBoot框架搭建之前,我们需要先准备好开发环境。具体如何安装Java开发环境和Maven这里不再赘述,如果还不了解的同学可以自己去查找相关资料进行学习。

  1. 创建Maven项目

首先我们需要在开发环境中新建一个Maven项目。打开命令行窗口,输入以下命令:

mvn archetype:generate -DgroupId=com.example -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

这个命令会创建一个名为demo的Maven项目。其中,-DgroupId指的是项目的组ID,-DartifactId指的是项目的ID,-DarchetypeArtifactId指的是使用的maven原型ID。执行完命令后,会在当前目录下创建一个名为demo的目录,里面包含了一个最简单的Maven项目。

  1. 导入SpringBoot相关依赖

我们需要在项目中添加SpringBoot相关的依赖,具体如下:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

在pom.xml中添加以上依赖后,保存文件并刷新Maven即可。

  1. 编写SpringBoot应用程序代码

现在我们需要编写一个最简单的SpringBoot应用程序。具体如下:

@SpringBootApplication
@RestController
public class DemoApplication {

    @RequestMapping("/")
    public String home() {
        return "Hello World!";
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

在这个代码中,我们使用了@SpringBootApplication注解来标记这是一个SpringBoot应用程序,并使用@RestController注解来标记这是一个Web控制器。该Web控制器会接收根路径("/")的请求,并返回"Hello World!"。

  1. 运行SpringBoot应用程序

最后一步是运行你的SpringBoot应用程序。在命令行窗口中输入以下命令:

mvn spring-boot:run

这个命令会启动SpringBoot应用程序,并在8080端口上监听请求。现在你可以在浏览器中输入http://localhost:8080/来访问你的应用程序了。

第二部分:集成MySQL数据库

在上一部分中,我们创建了一个最简单的SpringBoot应用程序。现在我们要学习如何将这个应用程序集成MySQL数据库。

  1. 添加MySQL JDBC驱动

在pom.xml中添加以下依赖来添加MySQL JDBC驱动:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

在添加依赖后,保存文件并刷新Maven即可。

  1. 编写数据源配置文件

在application.properties文件中添加以下数据源配置:

spring.datasource.url = jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver

在这个配置文件中,我们使用了MySQL数据库,并配置了数据库的URL、用户名和密码。

  1. 创建实体类和持久层

在我们开始写代码之前,我们需要先创建一个实体类来表示数据库中的一条记录。具体如下:

@Entity
public class User {
    @Id
    @GeneratedValue
    private Long id;
    private String name;
    private Integer age;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

接下来我们需要创建一个声明式事务的Repository,具体如下:

@Repository
@Transactional
public interface UserRepository extends JpaRepository<User, Long> {

}

在这个代码中,我们使用了JpaRepository来简化代码。这个接口提供了很多常用方法的实现,如查询、更新、分页等。

  1. 编写Service和Controller层代码

在我们已经定义好了实体类和Repository之后,接下来我们就可以开始编写Service和Controller层代码了。具体如下:

UserServiceImpl.java

@Service
@Transactional
public class UserServiceImpl implements UserService {
    @Autowired
    private UserRepository userRepository;

    @Override
    public void save(User user) {
        userRepository.save(user);
    }

    @Override
    public void update(User user) {
        userRepository.save(user);
    }

    @Override
    public void delete(Long id) {
        userRepository.deleteById(id);
    }

    @Override
    public User findById(Long id) {
        Optional<User> user = userRepository.findById(id);
        return user.orElse(null);
    }

    @Override
    public List<User> findAll() {
        return userRepository.findAll();
    }
}

UserController.java

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/save")
    public String save(@RequestBody User user) {
        userService.save(user);
        return "success";
    }

    @PutMapping("/update")
    public String update(@RequestBody User user) {
        userService.update(user);
        return "success";
    }

    @DeleteMapping("/delete/{id}")
    public String delete(@PathVariable Long id) {
        userService.delete(id);
        return "success";
    }

    @GetMapping("/findById/{id}")
    public User findById(@PathVariable Long id) {
        return userService.findById(id);
    }

    @GetMapping("/findAll")
    public List<User> findAll() {
        return userService.findAll();
    }
}
  1. 测试代码

最后一步是测试代码。我们可以使用Postman或其他工具来测试接口是否正常工作。

POST http://localhost:8080/user/save
Content-Type: application/json

{
    "name": "test",
    "age": 20
}

PUT http://localhost:8080/user/update
Content-Type: application/json

{
    "id": 1,
    "name": "updated",
    "age": 21
}

DELETE http://localhost:8080/user/delete/1

GET http://localhost:8080/user/findById/1

GET http://localhost:8080/user/findAll

以上是在SpringBoot中集成MySQL的教程,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot框架搭建教程分享 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Java中常用的Lambda表达式案例解析

    首先我们来介绍Lambda表达式。Lambda表达式是Java 8中引入的新特性,可以使得代码更加简洁、易读、易维护、可重用性更高,是一种将行为作为方法参数传递的方法。Lambda表达式由参数、箭头和函数体组成,语法结构如下: (parameter1, parameter2, …) -> { // 参数列表,可以为空,如果不为空则必须要使用括号 // …

    Java 2023年5月26日
    00
  • 如何避免对象引用的循环依赖?

    如何避免对象引用的循环依赖 在面向对象编程中,一个对象可能同时引用了另一个对象,这种引用关系如果不注意可能会出现循环依赖问题,即两个或多个对象相互引用,彼此依赖,无法被垃圾回收机制回收,导致内存泄漏。此时就需要采取一些方式来避免对象引用的循环依赖。下面介绍两种常用的方式: 方法一:使用弱引用 弱引用是一种比较常见的避免循环依赖的方式,它可以让对象之间的相互引…

    Java 2023年5月11日
    00
  • 深入理解springMVC中的Model和Session属性

    在Spring MVC中,Model和Session属性是常用的数据传递方式。Model属性用于在请求处理期间传递数据,而Session属性用于在多个请求之间传递数据。下面是深入理解Spring MVC中的Model和Session属性的完整攻略: Model属性 1. Model属性的作用 Model属性用于在请求处理期间传递数据。在Spring MVC中…

    Java 2023年5月18日
    00
  • Spring Boot在Web应用中基于JdbcRealm安全验证过程

    关于Spring Boot在Web应用中基于JdbcRealm安全验证的完整攻略,可以分为以下几个部分: 依赖配置 在项目的pom.xml文件中添加Shiro和JDBC驱动的依赖: <dependencies> <dependency> <groupId>org.apache.shiro</groupId> &…

    Java 2023年5月19日
    00
  • 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099的解决办法

    如果在启动Tomcat时出现“错误: 代理抛出异常: java.rmi.server.ExportException: Port already in use: 1099”的错误,意味着端口1099已经被占用了。一般是因为其他应用程序或Tomcat已经在使用该端口,导致Tomcat无法使用。 解决该问题的方法有两种,一种是找到占用了端口1099的应用程序并关…

    Java 2023年5月27日
    00
  • 一小时迅速入门Mybatis之bind与多数据源支持 Java API

    下面是关于“一小时迅速入门 Mybatis 之 bind 与多数据源支持 Java API”的完整攻略: 什么是 Mybatis Mybatis 是一款优秀的 Java ORM 框架,它的主要作用是将数据库表映射成 Java 对象。在 Mybatis 中,可以通过 XML 或 Java 注解的方式进行数据映射,同时提供了丰富的 SQL 语句拼接、缓存、事务控…

    Java 2023年5月20日
    00
  • java面试常见问题之Hibernate总结

    我来详细讲解“Java面试常见问题之Hibernate总结”的完整攻略。 简介 Hibernate是Java平台上的一个ORM框架,它提供了高效、灵活的对象/关系映射解决方案,能够很好地解决Java应用程序中对象持久化的问题。由于Hibernate的应用非常广泛,因此,在Java的面试中也经常会被问及Hibernate相关的问题。 Hibernate常见问题…

    Java 2023年5月20日
    00
  • Java String方法获取字符出现次数及字符最大相同部分示例

    实现获取字符出现次数和字符最大相同部分功能可以使用Java String类的一些方法,本攻略将详细讲解如何使用这些方法完成这些功能。 Java String方法获取字符出现次数 步骤1:获取输入字符串 首先,需要获取用户输入的字符串。这可以通过Java Scanner类实现。 import java.util.Scanner; public class St…

    Java 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部