SpringBoot2零基础到精通之配置文件与web开发

  1. 配置文件

Spring Boot 项目中的配置文件一般有 application.properties 和 application.yml 两种,它们用于对应不同的属性配置和格式化方式,常见的属性配置包括数据库连接、端口号、日志级别等。其中,application.yml 文件的格式化方式相对更灵活,可以嵌套、缩进和列表项等等。

下面以 MySQL 数据库连接池为例,演示配置不同的数据源,并在代码中使用:

application.yml 配置:

spring:
  datasource:
    url: jdbc:mysql://${mysql.one.host}:${mysql.one.port}/${mysql.one.db}?useSSL=false&charset=utf8&allowMultiQueries=true
    username: ${mysql.one.username}
    password: ${mysql.one.password}
    driver-class-name: com.mysql.jdbc.Driver
    initialization-mode: always

mysql:
  one:
    host: 127.0.0.1
    port: 3306
    db: test
    username: root
    password: root

Java 代码:

@Data
@Configuration
@ConfigurationProperties(prefix = "mysql.two") // 绑定配置文件中 mysql.two 前缀的属性
public class DataSourceConfig2 {

    private String url;
    private String username;
    private String password;
    private String driverClassName;

    @Bean
    public DataSource druidDataSource() throws SQLException {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setDriverClassName(driverClassName);
        dataSource.setFilters("config");
        return dataSource;
    }
}

@Service
public class UserServiceImpl {

    @Autowired
    private DataSource dataSource;

    public void test() throws SQLException {
        Connection conn = dataSource.getConnection();
        // do something
    }
}
  1. Web 开发

Spring Boot 内置了一些开发 Web 应用需要的工具和自动配置,比如嵌入式 Tomcat 容器、Thymeleaf 模板引擎、自动配置的 Controller 映射等等。我们可以基于这些模块,快速地开发服务端应用。下面演示一个基本的 GET 请求和 POST 请求的处理:

@RestController
@RequestMapping("/user")
public class UserController {

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

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

前面的请求通过 @GetMapping 注解来指定,具体路径是 /user/{id},其中的 {id} 表示动态变量,可以通过 @PathVariable 注解绑定到参数中。后面的请求则是 @PostMapping ,使用了 @RequestBody 注解来表示请求体,然后将其转换为 Java 对象。在这个最简单的例子中,我们使用了一个 UserService 来实现 findById 和 save 两个接口,但其实应该将这个服务用 @Service 或 @Component 注解标注。

使用 Postman 或者 curl 工具,可以测试这个 RESTful 的 API 接口:

curl -X GET http://localhost:8080/user/1
{"id":1,"name":"zhangsan","age":20}

curl -X POST -H "Content-Type:application/json" -d '{"name":"lisi","age":30}' http://localhost:8080/user/
{"id":2,"name":"lisi","age":30}

除此之外,Spring Boot 还可以提供更复杂的 MVC 处理、过滤器链、会话管理等等,详情请参考 Spring Boot 官网文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot2零基础到精通之配置文件与web开发 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • 掌握这些GitHub搜索技巧,你的开发效率将翻倍!

    作为开发it行业一员,学习借鉴他人项目是很有必要的,所以我们一般都会从github或者Gitee 上面去参考借鉴他人的项目来学习增加自己的项目经验 但是github你真的用对了嘛,他的功能其实很强大!!! githu项目搜索 关键字搜索 在Github搜索栏中输入与您感兴趣的技术相关的关键词,例如“machine learning”或“web develop…

    Java 2023年5月6日
    00
  • Java执行SQL脚本文件到数据库详解

    让我们详细讲解一下“Java执行SQL脚本文件到数据库详解”的完整攻略。 1. 准备工作 在Java程序中执行SQL脚本文件,需要导入以下jar包: mysql-connector-java.jar (MySQL数据库驱动包) commons-dbutils-1.6.jar (Apache DbUtils工具包) 2. 实现步骤 下面是实现Java执行SQL…

    Java 2023年5月19日
    00
  • 详细讲解springboot如何实现异步任务

    下面是Spring Boot如何实现异步任务的详细攻略: 为何需要实现异步任务? 在高并发场景下,一些任务可能会比较耗时,如果这些任务在主线程上执行,就会造成阻塞,导致用户体验变差,网站性能受到影响。为了提高网站的性能,我们就需要使用异步任务来提升网站的并发量和响应速度。 Spring Boot如何实现异步任务? Spring Boot提供了多种异步任务注解…

    Java 2023年5月15日
    00
  • Json操作库DynamicJson使用指南

    Json操作库DynamicJson使用指南 1. 介绍 DynamicJson是一个Json操作库,它可以轻松快速地处理Json数据。它的主要特点包括:- 支持动态类型- 支持Linq查询语句- 简单易用 2. 安装 可以使用NuGet轻松安装DynamicJson。在Visual Studio中,在项目中右键点击“管理NuGet程序包”,搜索Dynami…

    Java 2023年5月19日
    00
  • 基于Java实现文件和base64字符串转换

    下面是基于Java实现文件和base64字符串转换的攻略: 1.前置知识 在进行文件和base64字符串转换时,需要了解以下知识: 文件读写的基本操作 Base64编码和解码的原理和实现方式 2.实现步骤 2.1 文件转base64字符串 文件转base64字符串的过程可以分解为以下几步: 步骤1:将文件转换为字节数组 首先,需要将文件读取到内存中并将其转换…

    Java 2023年5月27日
    00
  • java中数组list map三者之间的互转介绍

    下面是“Java中数组List Map三者之间的互转介绍”的详细攻略。 一、数组与List集合之间的相互转换 1. 数组转List Array转List可以直接通过Arrays类中的asList方法实现,代码示例如下: String[] arr = new String[]{"a", "b", "c&quot…

    Java 2023年5月26日
    00
  • 一文带你了解Java选择排序的原理与实现

    一文带你了解Java选择排序的原理与实现 什么是选择排序 选择排序是一种简单但低效的排序算法,其主要思想是每次从待排序的数列中选取最小(或最大)的数放到已排序数列的末尾,直到所有的数都被排序完毕。 选择排序的时间复杂度为O(n²),虽然效率比冒泡排序略高,但是由于其固定的O(n²)时间复杂度,对于大规模数据的排序,效率仍然十分低下。 选择排序的具体实现 以下…

    Java 2023年5月19日
    00
  • RSA加密算法java简单实现方法(必看)

    当然,下面我将为您详细讲解“RSA加密算法java简单实现方法(必看)”的完整攻略。 RSA加密算法java简单实现方法(必看) 简介 RSA加密算法是一种非对称加密算法,广泛运用于网络通信与安全领域。RSA算法通常需要进行非常复杂的数学运算,但我们完全可以利用Java的BigInteger类来实现RSA算法。 实现步骤 生成公私钥对 首先,我们需要通过Ja…

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