springboot 我在application.yml 中配置 server.port:8889 我怎么在代码里取到
时间: 2024-03-03 11:48:14 浏览: 172
你可以使用 Spring 的 `@Value` 注解来获取 `application.yml` 中的属性值。在你的代码中,可以这样写:
```java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class MyComponent {
@Value("${server.port}")
private int port;
public void doSomething() {
System.out.println("Server port is: " + port);
}
}
```
在上面的代码中,`@Value("${server.port}")` 注解将会把 `application.yml` 中的 `server.port` 属性值注入到 `port` 变量中。然后你就可以在 `doSomething()` 方法中使用 `port` 变量了。
相关问题
springboot 我在application.yml 中配置 server:port:8889 我怎么在代码里取到
您可以通过在代码中注入`Environment`对象,然后调用`getProperty`方法来获取`application.yml`中的配置信息。示例代码如下:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
@Component
public class AppConfig {
@Autowired
private Environment env;
public int getServerPort() {
return env.getProperty("server.port", Integer.class);
}
}
```
在上面的示例代码中,我们通过`@Autowired`注入了`Environment`对象,并在`getServerPort`方法中调用了`getProperty`方法来获取`server.port`的值。如果`server.port`不存在,则返回`null`。如果您需要返回一个`int`类型的值,则可以使用`getProperty`的重载方法来指定默认值,如`env.getProperty("server.port", 8080, Integer.class)`。
springboot 我在application.yml 中配置 server:port:8889 我怎么在代码里取到
如果你的 `application.yml` 中的属性名是 `server.port`,那么你可以使用上面的代码来获取端口号。如果你的属性名是 `server:port`,则需要稍作修改:
```java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class MyComponent {
@Value("${server.port}")
private int port;
public void doSomething() {
System.out.println("Server port is: " + port);
}
}
```
在这个例子中,我们仍然使用 `@Value` 注解,但是把 `${server.port}` 改成了 `${server:port}`。注意,这里的冒号是中文输入法下的冒号,不是英文输入法下的冒号。这是因为在 `application.yml` 中,属性名使用中文冒号表示嵌套关系。但是在使用 `@Value` 注解时,需要使用英文冒号来分隔属性名和属性值。
总之,无论你的属性名是什么,只要在 `@Value` 注解中正确地引用它,你就可以在代码中获取到它的值。
阅读全文