使用@Autowired在bean构造函数中注入spring4 bean
我有一个类对象构造函数,其中一个参数是使用@Autowired在bean构造函数中注入spring4 bean,spring,hibernate,jpa,dependency-injection,autowired,Spring,Hibernate,Jpa,Dependency Injection,Autowired,我有一个类对象构造函数,其中一个参数是Long parent\u id原因对象是自相关的,如下所示: public class Folder { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) private Folder parent; } 当我尝试使用Gson反序列化时,我必须使用Gson创建对象。我想使用parent_id创建文件夹的新对象,将其应用于parent元素 当我尝试这样做时: @Transient
Long parent\u id
原因对象是自相关的,如下所示:
public class Folder {
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Folder parent;
}
当我尝试使用Gson
反序列化时,我必须使用Gson创建对象。我想使用parent_id创建文件夹的新对象,将其应用于parent
元素
当我尝试这样做时:
@Transient @Autowired public Folder folderDao;
someMethod() {
folderDao.get(9L);
}
我的刀类:
@Override
public T get(Long id) {
System.out.println("_Trying to get by id...");
return (T) getCurrentSession().get(entityClass, id);
}
我得到了一个NullPointerException
这一行也不例外:System.out.println(“\u试图通过id获取…”)代码>
我不知道为什么。有人能帮我吗?弹簧注射有什么问题吗
顺便说一句:我的控制器有@Transactional
注释似乎skeletonElementDao
为空
是否应该自动连接dao,而不是文件夹
@Autowired
private SkeletonElementDao skeletonElementDao;
而不是
@Transient @Autowired public Folder folder;
那么folderDao可能是空的。你是从正确初始化的bean打电话吗?不知怎的,自动布线并没有连接folderDao?是的。它是空的。我不知道为什么?在控制器中工作正常吗?它在模型中不起作用。我不知道为什么。这是模型课上的方法吗?无法工作,因为自动连线是针对在bean上下文上初始化的bean的。是。someMethod位于模型/实体内的构造函数中。你所说的bean上下文是什么意思?它是控制器,还是什么?我想你们可以在控制器上这样做,但我更喜欢在更大的应用程序上使用单独的服务层。