我有以下课程:
@Component
public class Scheduler {
@Value("${build.version}")
private String buildVersion;
public void test() {
System.out.println(this.buildVersion);
}
}
我从控制器调用方法test():
@RestController
public class ApiController {
@GetMapping("/status")
public StatusResponse status() {
Scheduler scheduler = new Scheduler();
scheduler.update();
}
然而,spring并没有注入构建。版本值,即使类具有组件注释。
我在控制器中使用相同的属性,它工作正常。
我做错了什么?
如果您使用application.yml
为这些属性提供值,请在类顶部使用@ConfigurationProperties
。您不需要为每个属性值提供@Value,例如:
@Component
@Data
@ConfigurationProperties(prefix = "build")
public class SchedulerProperties {
private String buildVersion;
}
在应用中,yml定义如下
build:
buildVersion: "XYZ"
然后您可以从属性类中调用版本
@Component
public class Scheduler {
@Autowired
private SchedulerProperties schedulerProperties;
public void test() {
System.out.println(schedulerProperties.getBuildVersion());
}
}
尝试这种方法,因为您使用new创建实例,而不是依赖Spring对象管理(控制反转)
@RestController
public class ApiController {
private Scheduler scheduler;
@Autowired
public ApiController(Scheduler scheduler) {
this.scheduler = scheduler
}
@GetMapping("/status")
public StatusResponse status() {
scheduler.update();
}
}
我试图向自定义注释中注入一个值,但Spring似乎没有进行评估。
我们一直在使用Spring@Value注释来注入属性值。我们有一个约定来命名属性名称,以匹配它们注入的java字段。这带来了不必要的工作,即每个ConfigBean的java字段都需要用@Value注释。 我正在寻找一种方法,用新的注释注释java类(比如说ConfigBean),让一些后处理器读取这些bean的属性名称,并自动注入属性值。 我正在寻找一些关于如何在没有@Value注释的情况下实现
我正在使用spring boot开发REST API。我想在我的项目中使用git。在文件应用程序中。属性我有数据库Url、用户名和密码,我不想在git上推送它们。我不知道如何创建包含数据库配置的文件,以及如何将这些配置注入应用程序。属性。 应用属性
主要内容:构造函数注入,setter 注入,短命名空间注入所谓 Bean 属性注入,简单点说就是将属性注入到 Bean 中的过程,而这属性既可以普通属性,也可以是一个对象(Bean)。 Spring 主要通过以下 2 种方式实现属性注入: 构造函数注入 setter 注入(又称设值注入) 构造函数注入 我们可以通过 Bean 的带参构造函数,以实现 Bean 的属性注入。 使用构造函数实现属性注入大致步骤如下: 在 Bean 中添加一个有参构造函数,构造
主要内容:1.xml方式的属性赋值,2.@Value注解,3.PropertySource1.xml方式的属性赋值 2.@Value注解 Person.java 这里的第一个@Value是直接赋值 第二个是通过简单的计算算出来的 测试: 3.PropertySource 通过外部文件赋值 在配置类中需要添加@PropertySource注解 指定外部文件的位置 测试:
我正在为我们的IT团队编写一个中央控制台,用于显示从Spring Boot Actuator endpoint/configprops检索到的属性,这些属性适用于我们SOA生态系统中运行的每个微服务。我有两个问题 似乎@Value注释的属性没有得到返回,尽管留档说 63.7发现外部属性的内置选项。。。。最终列表来自搜索源代码中的@ConfigurationProperties和@Value注释,以