我正在将一个现有的多模块maven项目迁移到spring boot 2.6.1,我已经填充了这个应用程序。其中一个模块(具有SpringBootApplication入口点和SpringBootMaven插件的模块)的resources文件夹中的属性。我可以通过应用程序环境从项目中的任何模块访问这些属性。但是,使用@Value绑定属性不起作用
以下是我的项目结构
PROJ
└── pom.xml
└── ModuleA
└── src
└── main
└── java
└── com.example
└── abc
└── configuration
└── TestConfig.java
└── MyApplication.java
└── resources
└── application.properties
└── pom.xml
└── ModuleB
为什么@ConfigurationProperties或@Value的属性绑定失败?(我正在尝试使用@ConfigurationProperties将所有数据源属性绑定到ModuleB中的DataSourceProperties bean,如留档中所述-但这也不起作用。)
我尝试过的事情:
代码:
波姆。xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>PROJ</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<name>PROJ</name>
<modules>
<module>ModuleA</module>
<module>ModuleB</module>
<!-- Other modules -->
</modules>
<profiles>
<profile>
<id>dev</id>
<properties>
<develop.mode>true</develop.mode>
</properties>
</profile>
<profile>
<id>prod</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<develop.mode>false</develop.mode>
</properties>
</profile>
</profiles>
<properties>
<!-- Project Properties -->
</properties>
<dependencyManagement>
<dependencies>
<!-- In House Modules -->
<dependency>
<groupId>com.example</groupId>
<artifactId>ModuleB</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>ModuleA</artifactId>
<version>1.0</version>
</dependency>
<!-- Spring -->
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-instrument</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
<version>${spring-plugin.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin</artifactId>
<version>${spring-plugin.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-saml2-service-provider</artifactId>
<version>5.5.0-BETA</version>
<classifier>BETA</classifier>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth</artifactId>
<version>${spring-security-oauth.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>${spring-security-oauth.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Various other dependencies -->
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<!-- Various plugins -->
</plugins>
</pluginManagement>
</build>
</project>
模块A/pom。xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>PROJ</artifactId>
<groupId>com.example</groupId>
<version>1.0</version>
</parent>
<artifactId>ModuleA</artifactId>
<packaging>jar</packaging>
<name>ModuleA</name>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- In House Modules -->
<dependency>
<groupId>com.example</groupId>
<artifactId>ModuleB</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
应用属性
# My datasource properties
app.datasource.myds.username=TestName
我的申请。JAVA
@SpringBootApplication
public class WSMBootApp {
public static void main(String[] args) {
SpringApplication.run(WSMBootApp.class, args);
}
}
TestConfig.java
@Configuration
public class TestConfig {
@Value("${app.datasource.myds.username}")
public String un;
@Bean(name = "testbean1")
@Primary
public Boolean testbean1() {
System.out.println("Value un: " + un); // prints null
return Boolean.FALSE;
}
@Bean(name = "testbean2")
public Boolean testbean2(Environment env) {
System.out.println("Env property: " + env.getProperty("app.datasource.myds.username")); // prints TestName
return Boolean.TRUE;
}
}
我已经找到了Spring Boot没有将我的属性与@Value或@ConfigurationProperties自动关联的原因。事实证明,我尝试迁移的项目实现了一个PropertyPlaceholderConfigurer bean,该bean未能正确初始化属性。我已经删除了这个bean,应用程序现在正在加载并自动连接应用程序中的所有属性。属性(来自所有模块)
我正在使用SpringDoc1.4和Spring-Boot2.3,在OperationCustomizer类中,我需要从应用程序属性文件中读取值。但每次都将字段初始化为。规格如下 应用程序.属性 OperationCustomizer类
null 当我运行带有库项目的主项目时(通过gradle、sourceControl、gitRepository),我可以看到库项目中的属性是空的。 如何使库项目使用从主应用程序传递下来的属性?
我在src/main/resources下创建了2个文件: 应用程序。属性 第一个具有从env变量中获取值的属性,而后者具有固定值。 根据这里的具体情况,我以这样的方式推出了Spring靴: 然而,不会产生任何影响,并且应用程序是局部的。属性似乎被忽略。 有什么提示吗?
我正在将一个非常基本的web应用程序部署到Google应用程序引擎。我使用的是Springboot,我可以在本地很好地运行应用程序,但当我部署到Google时,应用程序引擎不会启动实例。我在启动时配置了一个云SQL数据源。 我有云sql配置属性配置src/main/Resources/application.properties.App Engine似乎找不到这些属性,所以它无法正确设置Cloud
问题内容: 有没有比确定正在运行的node.js进程的根目录更好的方法?类似于,但适用于Node.js。我正在寻找尽可能可预测和可靠的东西。 问题答案: 有几种方法可以解决此问题,每种方法各有利弊: require.main.filename 从http://nodejs.org/api/modules.html: 直接从Node运行文件时,将其设置为。这意味着您可以通过测试确定文件是否已经直接运
我的Spring Boot应用程序有一个文件application.yml,它不愿意运行。 根据日志,元素[simulator.geo.b12,simulator.geo.b13,simulator.geo.b21,simulator.geo.c6,simulator.geo.host]未绑定的原因。然而,这个属性是在application.yml设置的,编译器甚至会返回它的值。 如果有人能帮我解