- 配置文件
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
}
}
- 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技术站