作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有 lombok @RequiredArgsConstructor 的类:
@RequiredArgsConstructor
@Service
public class Test{
private final String str;
private String str5;
// more code
}
在非 Spring 引导中,我们在 xml 中提供:
<bean id="Test" class="com.abc.Test">
<constructor-arg index="0" value="${xyz}"/>
</bean>
如何从 spring boot 实现相同的可能是通过 application.properties 但如何注入(inject)
最佳答案
@Service
需要删除注释并且必须在 @Configuration
中创建 bean。类与 @Bean
带注释的方法返回该类类型。
//Test.java
package com.abc;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
@RequiredArgsConstructor
@ToString
public class Test {
private final String str;
private String str5;
}
//DemoApplication.java
package com.abc;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
Test buildTest(@Value("${xyz}") String value) {
return new Test(value);
}
}
注:
@SpringBootApplication
暗示
@Configuration
//DemoApplicationTests.java
package com.abc;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DemoApplicationTests {
@Autowired
com.abc.Test test;
@Test
void contextLoads() {
System.out.println(test);
}
}
#application.properties
xyz=print me
结果:
Test(str=print me, str5=null)
关于java - lombok @RequiredArgsConstructor 如何向构造函数 spring boot 注入(inject)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63380477/
我是一名优秀的程序员,十分优秀!