我有一个小问题。这可能很琐碎,但我以前从未遇到过。
我有一个通用接口和一个通用实现。我想自动装配它,但出现了一个错误。以下是详细信息:
接口
@Service
public interface Serializing<T extends Serializable> {
String serialize(T toBeSerialized);
T deserialize(String toBeDeserialized, Class<T> resultType);
}
实现
@Service
public class JsonSerializer<T extends Serializable> implements Serializing<T> {
/** code **/
}
尝试自动装配
private NoteDAO noteDAO;
@Qualifier("jsonSerializer")
private Serializing<UserComment> serializer;
@Autowired
public NoteController(NoteDAO noteDAO, Serializing<UserComment> serializer) {
this.noteDAO = noteDAO;
this.serializer = serializer;
}
错误
Parameter 1 of constructor in somepackagepath.NoteController required a bean of type 'anotherpackagepath.Serializing' that could not be found.
我希望尽可能地保持简单。我查看了网上的资料,但只找到了有关在配置中定义准确bean的内容。如果可能的话,我更愿意避免这种方式。
@Qualifier
放在构造函数中会怎样? - Linoserializer
参数上 ->@Qualifier("jsonSerializer") Serializing<UserComment> serializer
- Lino