我目前正在学习如何使用Spring Boot。到目前为止,我从未使用过像Spring这样的框架,而是直接使用文件(FileInputStream等)
@Config("app.yaml")
public class Test {
@Value("app.token")
private String token;
private IClient client;
public Test(String token) {
this.client = ClientFactory.build(token).login();
}
}
我还发现了doc:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html,但我现在知道如何将它应用到我的项目中了。
我怎么才能做到这一点?提前谢谢:)
编辑:
package de.onkelmorph.watchdog;
import org.springframework.boot.Banner.Mode;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource("classpath:Beans.xml")
public class WatchdogBootstrap {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(WatchdogBeans.class);
app.setBannerMode(Mode.OFF);
app.setWebEnvironment(false);
app.run(args);
}
}
<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config></context:annotation-config>
</beans>
package de.onkelmorph.watchdog;
// Imports ...
@Component
@PropertySource("file:/watchdog.yml")
public class Watchdog {
// ...
// Configuration
@Value("${watchdog.token}")
private String token;
public Watchdog() {
System.out.println(this.token);
System.exit(0);
}
// ...
}
watchdog.yml(位于src/main/resources中)
watchdog:
token: fghaepoghaporghaerg
首先,您的test
类应该用@component
注释,以便spring将其注册为bean(还要确保所有类都在主包下--主包是用@springbootapplication
注释的类所在的地方)。
现在,您应该将所有属性移动到application.yml
(src/main/resources/application.yml
),该属性由Spring Boot自动选择(注意,它应该是.yml
而不是.yaml
,或者注册一个自定义的PropertySourcesplaceHolderConfigurer
。
PropertySourcesPlaceHolderConfigurer
的示例:
@Bean
public static PropertySourcesPlaceholderConfigurer PropertySourcesPlaceholderConfigurer() throws IOException {
PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
MutablePropertySources propertySources = new MutablePropertySources();
Resource resource = new DefaultResourceLoader().getResource("classpath:application.yml");
YamlPropertySourceLoader sourceLoader = new YamlPropertySourceLoader();
PropertySource<?> yamlProperties = sourceLoader.load("yamlProperties", resource, null);
propertySources.addFirst(yamlProperties);
configurer.setPropertySources(propertySources);
return configurer;
}
现在,您的属性应该被加载到Spring的环境中,它们可以通过@value
注入到bean中。
我有一个带有spring boot的java项目,我需要加载应用程序。外部文件夹中的属性和依赖项jar。 我使用该应用程序进行了测试。类路径和加载程序中的属性。路径属性工作正常。 当我使用外部属性文件(我确信它们已被使用)时,加载程序。路径工作不正常,结果为ClassNotFound,因为JAR未加载。 此外,当我启动应用程序与**-Dloader.path=**xxx它的工作正常。 如何使用外部
本文向大家介绍SpringBoot内部外部配置文件加载顺序解析,包括了SpringBoot内部外部配置文件加载顺序解析的使用技巧和注意事项,需要的朋友参考一下 内部配置加载顺序 SpringBoot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件 –file:./config/ –file:./ –cl
现有一个springboot项目,通过扫描二维码查询信息,比如一棵树,扫描二维码后可以看到他相关的信息。但这个项目不止有树类型,还有道路,某个物品。所以将项目分模块开发,核心模块作为一个jar包,复制提供基础服务如数据导入导出。各类型构建成单独的jar。部署时需要那种类型就加载对应的jar。这样做是为了满足不同客户需求。 尝试: java -Xbootclasspath/a:file:./libs
在springboot应用程序中,我有一个jar,然后是一个子目录config with application。属性,applicationContext。xml和log4j。。。属性文件。 我正在尝试外部化log4j配置。application.properties是这样外部化的。 但是,当springboot运行时,它使用jar文件中的log4j配置文件。通过使用-Dlog4j.debug选
如果一个bean类来自外部库(例如我自己的commons库),我如何使用ConfigurationProperties填充该bean? 示例:来自公共库: 实施项目: application.properties(也仅限于实施项目): 结果: 由于验证异常,应用程序启动失败。o、 s.b.b.PropertiesConfigurationFactory:对象公用空间中的字段错误。字段“name”上
我有一个启动应用程序,部署到一个外部tomcat服务器,一切工作在我的本地与本地数据库。现在,我必须将代码推广到数据库配置不同的更高环境。我读了很多关于配置文件的etc...,但是当它是一个外部tomcat并且不使用