Spring @ConfigurationProperties arbeitet sorgfältig, vielleicht falschJava

Java-Forum
Anonymous
 Spring @ConfigurationProperties arbeitet sorgfältig, vielleicht falsch

Post by Anonymous »

arbeitete an Konfigurationsklassen und entdeckte seltsames Verhalten. Vorbereiteter kleiner Test, um es zu reproduzieren: < /p>
@Slf4j
@ExtendWith(SpringExtension.class)
@TestPropertySource("classpath:test.yml")
class TestInjectingProperties
{

@Configuration
@ConfigurationProperties("a.b")
public class AbProperties
{
}

@Configuration
@ConditionalOnProperty("a.b")
@ConfigurationProperties("a.b")
public class AbOptionalProperties
{
}

@Configuration
@ConfigurationProperties("c.d")
public class CdProperties
{
}

@Configuration
@ConditionalOnProperty("c.d")
@ConfigurationProperties("c.d")
public class CdOptionalProperties
{
}

@ToString
@Configuration
@ConfigurationProperties("e.f")
public class EfProperties
{
private String g;
}

@Configuration
@ConditionalOnProperty("e.f")
@ConfigurationProperties("e.f")
public class EfOptionalProperties
{
private String g;
}

@Configuration
@ConditionalOnProperty("e.f.g")
@ConfigurationProperties("e.f")
public class EfgOptionalProperties
{
private String g;
}

@Autowired(required = false)
private AbProperties abProperties;

@Autowired(required = false)
private AbOptionalProperties abOptionalProperties;

@Autowired(required = false)
private CdProperties cdProperties;

@Autowired(required = false)
private CdOptionalProperties cdOptionalProperties;

@Autowired(required = false)
private CdProperties efProperties;

@Autowired(required = false)
private CdOptionalProperties efOptionalProperties;

@Autowired(required = false)
private EfgOptionalProperties efgOptionalProperties;

@Test
void testProperties()
{
log.info("ab properties = {}", abProperties);
log.info("ab optional properties = {}", abOptionalProperties);
log.info("cd properties = {}", cdProperties);
log.info("cd optional properties = {}", cdOptionalProperties);
log.info("ef properties = {}", efProperties);
log.info("ef optional properties = {}", efOptionalProperties);
log.info("efg optional properties = {}", efgOptionalProperties);
}

}
< /code>
YML -Dateiinhalt testen: < /p>
a.b:

c.d: null

e.f.g: abc
< /code>
Ausgabe ist: < /p>
INFO lms.common.validation.jsr303.TestInjectingProperties -- ab properties = null
INFO lms.common.validation.jsr303.TestInjectingProperties -- ab optional properties = null
INFO lms.common.validation.jsr303.TestInjectingProperties -- cd properties = null
INFO lms.common.validation.jsr303.TestInjectingProperties -- cd optional properties = null
INFO lms.common.validation.jsr303.TestInjectingProperties -- ef properties = null
INFO lms.common.validation.jsr303.TestInjectingProperties -- ef optional properties = null
INFO lms.common.validation.jsr303.TestInjectingProperties -- efg optional properties = null
< /code>
Ich hatte erwartet, dass der Frühling einige davon injizieren kann, aber alle waren null.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post