java读取springboot配置文件中的内容
首先创建实体类,书写实体类属性;
使用@Data注解,lombok插件,@Data注解自动将实体类的属性和方法,构造方法封装
java读取springboot配置文件中的内容有两种方法:
1.@ConfigurationProperties注解
@ConfigurationProperties(prefix=“student”),配置文件中前缀为xxx的字段
配置文件有两种类型,一种为后缀名为properties,一种后缀名为yml
两种方式字段写法有区别,同时如果两种文件同时存在,yml的优先级比properties的高
properties文件:
yml 文件:
创建测试类controller:
package com.controller;
import com.entry.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Test1 {
@Autowired
Student student;
@GetMapping("/wutian")
public String hi()
{
System.out.println(student);
System.out.println("石家街");
return "大哥";
}
}
在这里插入代码片
运行测试,在浏览器地址栏中输入:http://localhost:8081/wutian
在idea中得到结果:
第二种方法:@Value,这种注解需要在实体类中对实体类的属性一一进行标注,
并且用
(
)
来获取到实体对应的属性值格式如下
:
@
V
a
l
u
e
(
"
()来获取到实体对应的属性值格式如下: @Value("
()来获取到实体对应的属性值格式如下:@Value("{实体对象.属性}")
效果不再展示,需要注意的是@Value注解只可以对实体类的基本数据类型式的属性进行标注,对于实体类中包含的泛型,集合,自定义实体类属性等无法起到作用,效果比较局限;推荐使用第一种方法;
SpringBoot整合数据源
首先导入所需要的pom依赖:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ykq</groupId>
<artifactId>springboot-datasource</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-datasource</name>
<description>整合数据源</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--引入druid的数据源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
<!--引入mybatis和springboot的依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
</dependencies>
</project>
然后创建application.properties文件配置数据源:
server.port=8090
#配置数据源
#spring.datasource.username=root
#spring.datasource.password=928732275
#spring.datasource.url=jdbc:mysql://localhost:3306/demo6?serverTimezone=Asia/Shanghai
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#配置druid数据源
spring.datasource.druid.username=root
spring.datasource.druid.password=928732275
spring.datasource.druid.url=jdbc:mysql://localhost:3306/demo6?serverTimezone=Asia/Shanghai
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.druid.max-active=5
#配置映射文件所在的路径
mybatis.mapper-locations=classpath:/mapper/*.xml
server.port 设置当前端口号;server.port=8090
配置druid数据源
配置映射文件所在路径:
mybatis.mapper-locations=classpath:/mapper/*.xml
创建相对应的java类目录:
书写配置文件sql代码:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sb4.demo.mapper.EmpMapper">
<select id="select" resultType="map">
select * from tab_emp
</select>
</mapper>
书写相对应Mapper对象代码:
package com.sb4.demo.mapper;
import java.util.List;
import java.util.Map;
public interface EmpMapper {
public List
这里没有书写业务service层,直接通过控制层controller调用mapper层
书写controller代码:
package com.sb4.demo.controller;
import com.sb4.demo.mapper.EmpMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@RestController
public class EmpController {
//自动注入mapper类
@Autowired
EmpMapper empMapper;
@GetMapping("select")
public List<Map> select()
{
//返回查寻到的数据
return empMapper.select();
}
}
在SpringBoot主启动路径中需要加@MapperScan(basePackages = {“com.sb4.demo.mapper”})注解.进行mapper层类的扫描映射
启动测试,在浏览器地址栏中输入:http://localhost:8090/select得到结果数据:
在这里插入图片描述