我有一个带有@Autowired依赖项的抽象类“Command”和扩展抽象类的类。依赖性没有被注入。抽象和具体类使用@Component注释并正在扫描。似乎基础(抽象)类不是Spring管理的。需要做些什么呢?是否有注释将其定义为抽象?我不想用XML定义bean。
public abstract class Command {
@Autowired
private SecurityUtils securityUtils;
....
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
@Component
public class NoteCommand extends Command {
...
}
我的错误,我道歉。命令类是在我的控制器中注入的,其中一个(NoteCommand)中有许多是通过“new”手动实例化的。一切都很好。
答案 0 :(得分:0)
这可以通过XML配置实现(不确定注释)。阅读此http://docs.spring.io/spring-framework/docs/3.0.0.RC3/reference/html/ch03s07.html
试试这个(将其他配置添加到子bean?)
<bean id = "command" class = "some.package.name.Command" abstract = "true">
<property name = "securityUtils" ref = "securityUtils"/>
</bean>
<bean id ="noteCommand" class = "some.package.name.NoteCommand" parent="commadn">
</bean>
喝彩!
答案 1 :(得分:-1)
在我的情况下,在Spring4应用程序中,我必须使用经典的抽象工厂模式(我从这个想法 - http://java-design-patterns.com/patterns/abstract-factory/)创建实例,每次都有一个操作要完成所以我的代码设计如下:
**@Configurable(dependencyCheck = true)**
最初为了在抽象类中注入依赖项,我尝试了所有构造型注释,如@ Component,@ Service等,但即使Spring上下文文件具有整个包的ComponentScanning,但在某种程度上创建Subclasses的实例,如CampaignOperation,Super Abstract由于Spring无法识别并注入其依赖项,因此类EO的属性为null。经过多次试验和错误后,我使用了这个<context:annotation-config />
<context:component-scan base-package="com.xyz" />
注释,最后Spring能够注入依赖项,并且我能够使用这些属性在子类中没有使用太多属性使它们混乱。
**@Configurable(dependencyCheck = true)**
我也尝试过这些其他参考资料来找到解决方案:
请尝试使用var f = function(myVar) {
alert(myVar);
}
f('hello');
并更新此帖子,如果您遇到任何问题,我可以尝试帮助您。