作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有配置构造函数的旧类
public class Outer
{
...
public Outer(OldService oldService) { this.oldService = oldService;}
}
我需要使用新服务添加新字段,但无法更改构造函数(太多遗留代码依赖于它)。所以,我想要得到类似的东西
public class Outer
{
private NewService newService; // Need injection here
public Outer(OldService oldService) { this.oldService = oldService;}
}
@Component
public class NewService
{
public NewService(Dependency dependency){this.dependency = dependency;}
}
我尝试为 Outer.newService 应用 @Autowired 和 @Inject 属性,但没有帮助。我可以创建 Outer.Initiate(NewService newService) 方法,但这会给已经闻到的项目添加一些东西。
那么,我可以在Spring中注入(inject)字段吗?
Upd1 外部构造函数现在手动执行(如 varouter = newouter(service);)。
最佳答案
由于 Outer.class 不是由 Spring 容器实例化,而是由 new
实例化,因此 Spring 容器无法识别它。这就是为什么Spring无法对NewService
进行依赖注入(inject)。
现在,如果您将 Outer
实例化给 Spring,除了 Autowiring NewService
之外,您还需要 Autowiring 或使用任何 spring 装配来装配 OldService
进入外部
。
关于java - Spring:如何在没有构造函数的情况下初始化属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45594073/
我是一名优秀的程序员,十分优秀!