Spring Boot进阶

59 阅读3分钟

在上一篇博客中,我们介绍了如何入门使用Spring Boot,并创建了一个简单的应用程序。在本篇博客中,我们将进一步学习Spring Boot的一些高级特性,并通过一个示例代码来演示。

首先,我们将介绍如何配置数据库连接。Spring Boot提供了自动配置的功能,可以简化数据库连接的配置过程。在application.properties文件中,添加以下配置:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

这样,我们就配置了一个MySQL数据库连接,连接地址为localhost:3306/mydb,用户名为root,密码为123456。

接下来,我们将创建一个简单的数据访问对象(DAO)。在src/main/java/com/example/demo目录下创建一个新的类文件UserDao.java,添加以下代码:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public void addUser(String name, int age) {
        jdbcTemplate.update("INSERT INTO user(name, age) VALUES (?, ?)", name, age);
    }
}

这个类使用了Spring的注解@Repository来标记这是一个数据访问对象。在addUser方法中,我们使用了Spring的JdbcTemplate来执行数据库操作。

现在,我们可以在之前的DemoApplication类中使用UserDao。在hello方法中,添加以下代码:

@Autowired
private UserDao userDao;

@GetMapping("/add")
public String add() {
    userDao.addUser("John", 25);
    return "User added successfully!";
}

这样,当访问"/add"路径时,将会调用add方法,向数据库中添加一个名为John,年龄为25的用户。

接下来,我们将介绍如何使用Spring Boot的数据持久化功能。在application.properties文件中,添加以下配置:

spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

这样,我们就配置了使用MySQL数据库,并开启了SQL日志输出和自动DDL。

接下来,我们将创建一个实体类User,用于映射数据库中的user表。在src/main/java/com/example/demo目录下创建一个新的类文件User.java,添加以下代码:

import javax.persistence.*;

@Entity
@Table(name = "user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private int age;

    // getters and setters

}

这个类使用了Spring的注解@Entity和@Table来标记这是一个实体类,并指定了映射的数据库表名为"user"。@Id注解标记了主键字段,@GeneratedValue注解指定了主键的生成策略为自增。

接下来,我们将创建一个用户服务类UserService,用于操作用户实体。在src/main/java/com/example/demo目录下创建一个新的类文件UserService.java,添加以下代码:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public void addUser(String name, int age) {
        User user = new User();
        user.setName(name);
        user.setAge(age);
        userRepository.save(user);
    }
}

这个类使用了Spring的注解@Service来标记这是一个服务类,并使用了自动注入的方式注入了UserRepository。

最后,我们将修改DemoApplication类中的add方法,使用UserService来添加用户。在add方法中,添加以下代码:

@Autowired
private UserService userService;

@GetMapping("/add")
public String add() {
    userService.addUser("John", 25);
    return "User added successfully!";
}

这样,当访问"/add"路径时,将会调用add方法,使用UserService添加一个名为John,年龄为25的用户。

现在,我们可以运行这个应用程序。在项目的根目录下,执行以下命令:

mvn spring-boot:run

当应用程序启动后,你可以在浏览器中访问http://localhost:8080/add,应该能够看到"User added successfully!"的字符串。