我目前有一个外部属性文件,它被输入流调用。但是当我将我的jar文件上传到云代工厂时,我的应用程序将无法运行。
代码段
public static void main(String[] args) {
SpringApplication.run(App.class, args);
Properties prop = new Properties();
InputStream input = null;
try {
Date sysDate = new Date();
String dateString = sysDate.toString();
logger.info(" Application Started Time : " + dateString);
input = new
FileInputStream("C:/Users/Jackie/workspace/springApplication/myConfig.properties");
prop.load(input);
在我的属性文件中,我有很多文本,它在我的java应用程序中使用。在进行研究时,似乎我需要将属性文件更改为spring引导格式?这是对的吗?
属性摘要
mailhost=mailman@mail.com
mailToException=TheReal_mailman@mail.com
mailwhengreen = TheReal_mailman@mail.com
mailTo = TheReal_mailman@mail.com
mailFrom = messenger21@yahoo.com
mailFromwhengreen = messenger21@yahoo.com
subject= You got mail!
以下是云代工厂的日志。
答案 0 :(得分:0)
如果您的属性文件是静态的,在应用程序启动时加载一次并且在应用程序生命周期内不会更改,则下面的答案可以正常运行。 如果您需要在应用程序运行时解析属性文件,那么Spring配置文件不是正确的位置,您确实需要自己处理属性(http://docs.spring.io/spring/docs/current/spring-framework-reference/html/resources.html#resources-implementations-filesystemresource应该帮助您)
无需自行读取和解析属性文件。
最容易想到你能做到的,就是使用个人资料。
您启用名为someProfile
的配置文件,然后spring将查找名为application-someProfile.properties
的属性文件。
如果发现将使用外部(在您打包的jar之外)文件。否则将使用内部(在jar中打包)文件。这澄清了 http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config
按以下顺序考虑属性:
(...)
- 打包jar之外的特定于配置文件的应用程序属性 (application- {profile} .properties和YAML variants)特定于配置文件
- 打包在jar中的应用程序属性 (application- {profile} .properties和YAML variants)
醇>
如果没有匹配的属性文件,那么完全没问题。
通过在任何@Profile("production")
类上添加@Configuration
来激活配置文件。
也可以使用spring.profiles.active
环境变量列出活动配置文件(您可以在启动应用程序时设置此变量)。
要读取属性值,您可以执行
之一@Autowire
org.springframework.core.env.Environment
个实例进入您的课程并致电getProperty
检查http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html 有关Spring Boot属性的更多详细信息。
检查http://docs.spring.io/autorepo/docs/spring-boot/current/reference/html/boot-features-profiles.html以获取有关配置文件的更多信息。
如果属性文件中出现错误,则应在应用程序启动时(上下文加载期间)出错。要检查加载的属性,您可以使用http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html
env
端点最有用,因为它会列出