Java – since migrating to spring boot 1.1 4. After release, @ value and application Properties problem

I have a problem because I moved to version 1.1 4. Spring launch of release

Variables annotated with @ value have not yet been filled with values, although they exist in application Properties Before that, I used spring boot @ version 1.0 2. And it works normally

It all started with the upgrade. I didn't change the code

SampleApplication. java

package org.sample;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;

@Configuration
@ComponentScan
@EnableAutoConfiguration
@PropertySource(value = "classpath:application.properties")
public class SampleApplication {

private static Logger logger = LoggerFactory
        .getLogger(TaskManagerApplication.class);

@Value("${org.sample.sampleProperty}")
private static String sampleProperty;

public static void main(String[] args) {

    SpringApplication.run(SampleApplication.class,args);
    System.out.print("SampleApplication started: " + sampleProperty);

}

@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {

    return new PropertySourcesPlaceholderConfigurer();

}
}

application. properties

spring.datasource.url: jdbc:MysqL://127.0.0.1:3306/mydb
spring.datasource.username: root
spring.datasource.password: root
spring.datasource.driverClassName: com.MysqL.jdbc.Driver
spring.jpa.show-sql: true

#Disable the ddl-auto:create once tables have been created
#spring.jpa.hibernate.ddl-auto: create

org.sample.sampleProperty=This is a sample property

photos.upload.dir=C:/temp/UserPhotos/

# Server port
server.port=8081

I tried to add a propertysourcesplaceholderconfigurer bean, or even propertysourcesplaceholderconfigurer, but there was still a problem

Has anyone experienced this? Or is there a new way to load property files?

Please note that my database connection and server port are reading correctly because my application can connect to the database and I must access it through the specified port The sampleproperty variable remains empty

Solution

>@ value is not applicable to static fields

Sufficient working examples:

package demo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import javax.annotation.postconstruct;

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {

    @Value("${org.sample.sampleProperty}")
    private String sampleProperty;

    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }

    @postconstruct
    public void postconstruct() {
        System.out.print("SampleApplication started: " + sampleProperty);
    }
}
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>