使用的springboot版本如下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
我使用了application.yml,application-dev.yml,application-mysql.yml
application.yml如下
spring:
profiles:
active: dev
logging:
config: classpath:logback-spring.xml
application-ddev.yml如下
server:
port: 8088
servlet:
context-path: /
multipart:
maxFileSize: 100MB
maxRequestSize: 100MB
spring:
profiles:
include:
- mysql
application-mysql.yml如下
spring:
datasource:
mysql:
url: jdbc:mysql://*******:3306/epoch_study?useUnicode=true&characterEncoding=UTF-8&useSSL=false
driverClassName: com.mysql.jdbc.Driver
username: ****
password: ****
但是当我在
@Configuration
@EnableConfigurationProperties
@MapperScan(basePackages = MybatisDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "mybatisSqlSessionFactory")
public class MybatisDataSourceConfig {
protected static final String PACKAGE = "com.epoch.dao.mybatis";
protected static final String MAPPER_LOCATION = "classpath:mapper/mybatis/*.xml";
@Value("${spring.datasource.mysql.url}")
private String url;
@Value("${spring.datasource.mysql.username}")
private String username;
@Value("${spring.datasource.mysql.password}")
private String password;
@Value("${spring.datasource.mysql.driverClassName}")
private String driverClassName;
}
使用@Value的时候,缺报错如下
Could not resolve placeholder 'spring.datasource.mysql.url' in value "${spring.datasource.mysql.url}"
但是当我吧application-mysql.yml中内容,移动到application-dev.yml中,又可以正常启动,其中
我怀疑是spring.profiles.include使用错误,因此换了多种方式,均不行
在POM中已引用了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
请问大家知道是如何造成这种现象的,怎么解决呢?