Java 如何在Spring引导配置类中创建属性文件值

Java 如何在Spring引导配置类中创建属性文件值,java,spring,spring-boot,Java,Spring,Spring Boot,如何在配置类中使用application.properties文件 应用程序属性 datasource.username=test Config.class @Configuration @EnableTransactionManagement @EnableJpaRepositories( entityManagerFactoryRef = "abcFactory", transactionManagerRef = "abcmanager&

如何在配置类中使用application.properties文件

应用程序属性 datasource.username=test

Config.class

 @Configuration
 @EnableTransactionManagement
 @EnableJpaRepositories(
    entityManagerFactoryRef = "abcFactory", 
    transactionManagerRef = "abcmanager",
    basePackages = { "com.emp.repository" }) 

    public class EmpConfig {
    
        @Value("${datasource.username}")
        String username;
        
        @Bean(name = "empDataSource")      
        public DataSource empDataSource(String url, String userName, String pwd) {        
         DriverManagerDataSource dataSource = new DriverManagerDataSource();
         dataSource.setDriverClassName("XXX");
         dataSource.setUrl(url);
         dataSource.setUsername(userName);
         dataSource.setPassword(pwd);         
         return dataSource;        
 
        }
    
    
    }

如何将属性传递到username set字段。

取决于您初始化应用程序的方式,但通常您会将

@EnableAutoConfiguration
@PropertySource("classpath:application.properties")
@ComponentScan
@SpringBootApplication
@EnableTransactionManagement
确保您的配置中有一个

@Bean
public static PropertySourcesPlaceholderConfigurer propertyPlaceholderConfigurer() {
    return new PropertySourcesPlaceholderConfigurer();
}
然后您可以访问这样的值

@Value("${datasource.username}")
@NotNull //optional
String username;

您不需要
@EnableAutoConfiguration
@ComponentScan
@PropertySource(“classpath:application.properties”)
,因为
@SpringBootApplication
已经合并了前两个组件<默认情况下,代码>应用程序.properties会扫描属性,因此您无需将其添加为属性源。如果pom中有spring boot starter,则也不需要
属性资源占位符配置器@值(“${datasource.username}”)@NotNull//可选字符串username;这里:您可以找到一个具有内部和外部属性的工作Spring引导项目的示例@RahulSharma的所有评论都是正确的。@Mukti您需要添加代码,让我们看看有什么问题happening@RahulSharma,我已经更新了上面的代码,仍然使用@Value(${datasource.username})