📜  学习Spring Boot教程(1)

📅  最后修改于: 2023-12-03 15:09:22.817000             🧑  作者: Mango

学习Spring Boot教程

Spring Boot是Spring Framework的一种扩展,它通过提供预配置的模板和自动配置来简化了Spring应用程序的搭建和开发。它是一个开源的Java开发框架,应用广泛,被认为是构建Java Web应用程序的最佳选择之一。

目录
  1. 简介和特点
  2. 安装和配置
  3. 创建第一个Spring Boot应用程序
  4. Spring Boot核心注解解析
  5. Spring Boot集成MyBatis
  6. Spring Boot集成Thymeleaf模板引擎
  7. Spring Boot集成Swagger2接口文档
1. 简介和特点

Spring Boot是Spring Framework的一种扩展,它提供了简化开发的功能和约定,使开发者能够更快速地创建Spring应用程序。

Spring Boot的特点:

  • 快速启动:Spring Boot应用程序可以非常快速地启动,并且应用程序的启动时间通常只需要几秒钟。
  • 自动配置:Spring Boot可以根据您的配置和类路径来自动配置您的应用程序。
  • 无代码生成和XML配置:您不需要代码生成和XML配置,只需要编写SpringBean即可。
2. 安装和配置

在开始学习Spring Boot之前,我们需要正确地安装和配置它。

  1. 下载并安装Java运行时环境(JRE)或Java开发工具包(JDK)。
  2. 下载并安装Maven构建工具。
  3. 下载并安装Spring Tool Suite(STS)或IntelliJ IDEA。
  4. 创建一个新的Maven项目,并将以下依赖项添加到pom.xml文件中:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  1. 然后就可以开始编写Spring Boot应用程序了。
3. 创建第一个Spring Boot应用程序

在创建第一个Spring Boot应用程序之前,我们需要先了解一些Spring Boot的基础知识。

  • @SpringBootApplication注解:这是一个组合注解,包括@Configuration,@EnableAutoConfiguration和@ComponentScan。
  • @RestController注解:这是一个Spring MVC注解,它用于创建RESTful Web服务。

现在让我们编写第一个Spring Boot应用程序:

  1. 在Maven项目中创建一个名为com.example的包。
  2. 创建一个名为SampleController的Java类,并用@RestController注解注释它。在该类中添加一个方法,用于返回字符串“Hello World”。
@RestController
public class SampleController {
    @RequestMapping("/")
    public String home() {
        return "Hello World";
    }
}
  1. 在项目的src/main/java文件夹中创建一个名为Application的Java类。使用@SpringBootApplication注解注释此类,并将SpringBoot应用程序的入口点声明为main方法。
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  1. 启动应用程序,并使用您的Web浏览器访问localhost:8080,您应该看到“Hello World”字符串。
4. Spring Boot核心注解解析

在上面的例子中,我们使用了Spring Boot的两个核心注解:

  • @SpringBootApplication注解:它包含了@Configuration、@ComponentScan和@EnableAutoConfiguration三个注解,相当于这三个注解的合集。其中,@ComponentScan用于扫描指定包下的所有@Component、@Controller、@Service、@Repository等注解的类,并进行Spring Bean的注册和管理。@Configuration用于定义Spring Bean的配置类,@EnableAutoConfiguration用于自动配置SpringBean。
  • @RestController注解:它是Spring MVC注解的缩写。用于快速构建RESTful Web服务。
5. Spring Boot集成MyBatis

在我们的Spring Boot应用程序中使用MyBatis非常容易,只需要遵循以下步骤:

  1. 在pom.xml文件中添加以下依赖项:
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.2.0</version>
</dependency>
  1. 创建MyBatis的Mapper和Model类,其中一个简单的示例:
public interface UserMapper {
    @Select("SELECT * FROM user")
    List<User> findAllUsers();
}

public class User {
    private int userId;
    private String username;
    private String password;
    // 省略getter和setter方法
}
  1. 在application.properties文件中配置数据库连接信息:
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=user
spring.datasource.password=pass
  1. 创建一个Spring Bean来连接数据库:
@Configuration
public class DatabaseConfig {
    @Value("${spring.datasource.url}")
    private String url;
    @Value("${spring.datasource.username}")
    private String username;
    @Value("${spring.datasource.password}")
    private String password;

    @Bean
    public DataSource dataSource() {
        return DataSourceBuilder.create()
                .url(url)
                .username(username)
                .password(password)
                .build();
    }
}
  1. 创建MyBatis的SqlSessionFactoryBean:
@Configuration
@EnableTransactionManagement
@MapperScan("com.example.mapper")
public class MyBatisConfig {
    @Autowired
    private DataSource dataSource;

    @Bean
    public SqlSessionFactoryBean sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml"));
        factoryBean.setDataSource(dataSource);
        return factoryBean;
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new DataSourceTransactionManager(dataSource);
    }
}
  1. 在Controller中使用自动注入Mapper类实现MyBatis SQL方法的调用:
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserMapper userMapper;

    @GetMapping("/")
    public List<User> allUsers() {
        return userMapper.findAllUsers();
    }
}
6. Spring Boot集成Thymeleaf模板引擎

Thymeleaf是使用Java模板引擎的一种方式,它允许在HTML模板中轻松地嵌入动态数据。

要在我们的Spring Boot应用程序中使用Thymeleaf模板引擎,我们需要遵循以下步骤:

  1. 在pom.xml文件中添加以下依赖项:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
  1. 在application.properties文件中配置Thymeleaf相关属性:
spring.thymeleaf.mode=HTML5
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.check-template-location=true
spring.thymeleaf.suffix=.html
  1. 在/resources/templates目录下创建HTML模板:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Title</title>
</head>
<body>
    <h1 th:text="${title}"></h1>
    <ul>
        <li th:each="name : ${names}" th:text="${name}"></li>
    </ul>
</body>
</html>
  1. 使用@Controller注解的类实现业务逻辑:
@Controller
public class MyController {
    @RequestMapping("/")
    public String index(Model model) {
        model.addAttribute("title", "欢迎访问我的网站");
        model.addAttribute("names", new String[]{"Alice", "Bob", "Charlie"});
        return "index";
    }
}
7. Spring Boot集成Swagger2接口文档

Swagger是一款API文档自动生成工具,可以自动检测代码中带有注解的API接口,并生成可视化的接口文档。

要在我们的Spring Boot应用程序中使用Swagger2,我们需要遵循以下步骤:

  1. 在pom.xml文件中添加以下依赖项:
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>2.9.2</version>
</dependency>
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>2.9.2</version>
  <scope>compile</scope>
</dependency>
  1. 在@Configuration注解的配置类中添加Swagger2配置:
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() { 
        return new Docket(DocumentationType.SWAGGER_2)
          .select()                                 
          .apis(RequestHandlerSelectors.any())              
          .paths(PathSelectors.any())                          
          .build();                                            
    }
}
  1. 启动Spring Boot应用程序并访问http://localhost:8080/swagger-ui.html,您将看到自动生成的接口文档。
结论

Spring Boot是一个非常流行的Java开发框架,它提供了许多强大而方便的功能,使得开发人员能够更快速地创建Java Web应用程序。学习Spring Boot非常容易,只需要遵循上面的步骤即可快速入门。