当前位置: 首页 > 知识库问答 >
问题:

无法访问Spring Boot应用程序中的属性

陶英纵
2023-03-14

我的spring boot应用程序中目前只有两个类。第一个是main主引导应用程序类,另一个是服务类。我在应用程序类中声明了如下属性源文件:

@SpringBootApplication 
@PropertySource("classpath:ftp.properties")
public class Application
{

    public static void main(String[] args) throws JSchException, SftpException, IOException
    {
        SpringApplication.run(Application.class, args);
        FTPService ftpservice = new FTPService();
        ftpservice.ftp();
    }

}

其他类是FTPService,其中属性值in使用@value,如下所示:

public class FTPService
{
    @Value("${vendor1.server}")
    private String VENDOR1_SERVER;

    public boolean ftp() throws JSchException, SftpException, IOException
    {
        boolean success = false;
        System.out.println("vendor1.server : " + VENDOR1_SERVER);
        return success;
    }
}

它打印空。也尝试用下面的注释来注释FTPService,但不起作用。尝试将属性复制到Application.properties,但不起作用。

@Configuration
@PropertySource("classpath:ftp.properties")

我的属性文件在src/main/resources下。它的名称是FTP.Properties,内容如下:

vendor1.server = server.com
plugins {
id 'org.springframework.boot' version '1.5.6.RELEASE'
id 'java'
}

group = groupName

sourceCompatibility = javaVersion
targetCompatibility = javaVersion

compileJava.options.encoding = 'UTF-8'

repositories {
    mavenCentral()
}

configurations.all {
    exclude group: 'commons-logging', module: 'commons-logging'
    exclude group: 'log4j', module: 'log4j'
    exclude group: 'org.slf4j', module: 'slf4j-jdk14'
    exclude group: 'org.slf4j', module: 'slf4j-log4j12'
}

configurations {
    all*.exclude module : 'spring-boot-starter-logging'
}

dependencies {

    compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: bootVersion
    compile group: 'com.jcraft', name: 'jsch', version: jschVersion

    compile group: 'javax.servlet', name: 'javax.servlet-api', version: servletVersion
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: jacksonVersion
    compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: log4jVersion
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: log4jVersion
    compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: log4jVersion
    compile group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion
    compile group: 'org.slf4j', name: 'jcl-over-slf4j', version: slf4jVersion
    compile group: 'org.slf4j', name: 'log4j-over-slf4j', version: slf4jVersion
    compile group: 'org.slf4j', name: 'jul-to-slf4j', version: slf4jVersion

    testCompile group: 'junit', name: 'junit', version: junitVersion
}

共有1个答案

章景同
2023-03-14

属性注入在示例中不起作用,因为您使用new关键字手动创建对象。属性注入仅在Spring容器管理的对象中工作。

@service注释FTPService类,然后将该bean注入到要执行FTP()方法的某个位置。在这种情况下,main方法不起作用。

 类似资料:
  • 我是kubernetes的新手,我尝试使用Kubernete运行小型应用程序。我创建了docker镜像并使用minikube运行它。所以应用程序非常简单,它只打印hello world。 我的dockerfile文件: deployment.yaml 我运行命令: 创建deployment.yaml 输出是: 服务/myhelloworldservice已创建 创建的部署.apps/我的问候世界

  • 我试图从我的SAM应用程序本地连接到DynamoDB。我能够启动Dynamodb服务器,并能够通过我的python文件连接它,引用此https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.Python.01.html 导入json导入boto3从boto3.dynamodb.conditions

  • 当我在我的设备(Galaxy Note 3和Ouya)上调试一个在Android Studio中编写的应用程序时,该应用程序调试良好,并在设备上运行,但是该应用程序从未出现在应用程序抽屉中,所以我无法在断开连接的设备上运行它(即当我的开发计算机离开时,向其他人显示正在运行的应用程序)。我的应用程序曾经安装为可运行的应用程序,但这似乎不再发生。然而,应用程序在应用程序管理器中被列为一个应用程序,我可

  • 我在src/main/resources下创建了2个文件: 应用程序。属性 第一个具有从env变量中获取值的属性,而后者具有固定值。 根据这里的具体情况,我以这样的方式推出了Spring靴: 然而,不会产生任何影响,并且应用程序是局部的。属性似乎被忽略。 有什么提示吗?

  • 我正在使用SeleniumJavaJAR版本:3.4.0Appium,桌面版本:1.4.13.1Java客户端版本:5.0.0-BETA9 代码和所需的功能是: } 但当我运行它时,在eclipse控制台中出现了以下错误: 以下是appium的错误: 试图通过更改不同版本来解决,但无法解决。appium正在显示错误,但同时emulator正在显示已安装的应用程序。 有人有相同的问题吗?请提出解决方