我不知道如何将参数传递给PropertySource注释,所以我在SpringBootApplication中有以下代码,这段代码通过参数加载属性文件的方向。
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class })
public class ProjectApplication extends WebMvcConfigurerAdapter implements ApplicationRunner {
public static String PROPERTIES = null;
Logger logger = LoggerFactory.getLogger(ProjectApplication.class);
public static void main(String[] args) {
SpringApplication.run(ProjectApplication.class, args);
}
@Override
public void run(ApplicationArguments args) throws Exception {
logger.info("Application started with command-line arguments: {}", Arrays.toString(args.getSourceArgs()));
logger.info("NonOptionArgs: {}", args.getNonOptionArgs().get(0));
String prueba = args.getNonOptionArgs().get(0);
String[] parts = prueba.split("=");
String part2 = parts[1];
if (OSHelp.isLinux()==true) {
PROPERTIES = OSHelp.getUserHome()+"/PROPERTIES/"+part2+".properties";
}else{
PROPERTIES = OSHelp.getUserHome()+"\\PROPERTIES\\"+part2+".properties";
}
}
我有以下Hibernate配置。
@Configuration
@EnableTransactionManagement
@PropertySource(value = "classpath:"+{ProjectApplication.PROPERTIES})
public class HibernateConfiguration {
}
如何调用ProjectApplication的属性?
现在我遇到以下问题
@PropertySource(value = {"C:/Users/Usuario/PROPERTIES/DESARROLLO.properties"})
我的HibernateConfiguration文件中有以下网址,并说文件创建时不存在!
我不知道它为什么会发生!
DESARROLLO = DEV
答案 0 :(得分:0)
您可以使用dev,prod等个人资料
@Configuration
@EnableTransactionManagement
@Profile("dev")
public class HibernateConfiguration {
}
或者您可以使用application-{profile}.properties
进行配置,并将活动配置文件作为命令传递。