如何在application.yml注入list配置
时间: 2023-09-24 09:06:14 浏览: 80
你可以在 `application.yml` 文件中使用以下方式来注入 List 配置:
```
my:
list-config:
- value1
- value2
- value3
```
然后,在你的 Java 代码中使用 `@Value` 注解来获取 List 配置:
```java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class MyComponent {
@Value("${my.list-config}")
private List<String> listConfig;
// ...
}
```
这样,Spring Boot 就会自动将 `my.list-config` 对应的值注入到 `listConfig` 变量中,你就可以在代码中使用它了。
相关问题
application.yml配置list
在application.yml中配置list时,需要使用"-"来组成一个列表集合。同时,属性名称在yml文件中支持连字符"-",比如"four-span",而在Java类中配置属性时需要转为驼峰式,如"fourSpan"。此外,还需要在Java类中配置set和get方法。可以使用@ConfigurationProperties注解来指定配置类的前缀,如@ConfigurationProperties(prefix = "demo.code")。另外,在配置类中需要使用@Configuration注解标记该类为配置类,并使用@Getter和@Setter注解为属性生成get和set方法。在配置类中,可以定义一个List属性来接收yml文件中的列表值。例如,可以创建一个配置类Config,其中包含一个paramInfo属性用来接收列表值,代码如下:
```java
@Configuration
@ConfigurationProperties(prefix = "demo.code")
@Getter
@Setter
public class Config {
private List<ParamInfo> paramInfo;
}
```
这样,通过读取application.yml文件中的配置,并将列表值注入到Config类的paramInfo属性中,以便在应用程序中使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [springboot读取yml文件中的list列表、数组、map集合和对象](https://blog.csdn.net/weixin_42274846/article/details/128155678)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [springboot的application.yml如何配置List、Map形式的配置](https://blog.csdn.net/Hope_lee/article/details/105660434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
在application.yml文件中配置多个数据源默认使用第一个完整培训
好的,下面是在application.yml文件中配置多个数据源,默认使用第一个数据源的示例:
```yaml
spring:
datasource:
# 第一个数据源配置
primary:
url: jdbc:mysql://localhost:3306/primary_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
username: primary_user
password: primary_password
driver-class-name: com.mysql.cj.jdbc.Driver
# 第二个数据源配置
secondary:
url: jdbc:mysql://localhost:3306/secondary_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
username: secondary_user
password: secondary_password
driver-class-name: com.mysql.cj.jdbc.Driver
# 配置多数据源时,需要手动指定默认数据源为primary
mybatis-plus:
configuration:
# 指定默认数据源为primary
default-enum-type-handler: com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler
default-scripting-language-type: org.apache.ibatis.scripting.xmltags.XMLLanguageDriver
map-underscore-to-camel-case: true
mapper-locations: classpath*:mapper/**/*.xml
global-config:
db-config:
logic-delete-value: -1
logic-not-delete-value: 1
id-type: auto
field-strategy: not_empty
```
以上示例中,我们配置了两个数据源:primary和secondary。
在mybatis-plus配置中,我们手动指定了默认数据源为primary。这样,当我们使用mybatis-plus进行数据库操作时,默认会使用primary这个数据源。
当然,如果需要使用secondary数据源,也可以手动指定。例如:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
@Qualifier("secondaryDataSource")
private DataSource dataSource;
@Autowired
private UserMapper userMapper;
@Override
public List<User> listUsers() {
// 指定使用secondary数据源
DynamicDataSourceContextHolder.setDataSourceKey("secondary");
List<User> userList = userMapper.selectList(null);
// 切换回默认数据源
DynamicDataSourceContextHolder.clearDataSourceKey();
return userList;
}
}
```
以上示例中,我们首先注入了名为secondaryDataSource的数据源。然后,在需要使用secondary数据源的方法中,手动指定使用secondary数据源。最后,记得切换回默认数据源。
阅读全文