簡體   English   中英

在spring項目中,hibernate autowire沒有遇到麻煩,找不到bean錯誤

[英]Little trouble with hibernate autowire in a spring project, bean not found error

我想嘗試spring 3.0.5的<context:component-scan base-package />功能。

我在applicationContext中有這個條目:

<context:component-scan base-package="com.project.personal.admin.model"/>
<context:annotation-config />

我有一個經理類,知道如何創建任何POJO和DAO。

@Component("manager")
public class ManagerImpl implements ApplicationContextAware, Manager {

  ApplicationContext applicationContext;

  public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    this.applicationContext = applicationContext;
  }

  public User CreateUser(){
    return (User) getInstance("user", User.class);
  }


  public UserDAO createUserDAO(){
    return (UserDAO) getInstance("userDAO", UserDAO.class);
  }
 //....
}

Pojo喜歡:

@Entity
@Table(name = "user", uniqueConstraints = {
@UniqueConstraint(columnNames = {"email"})})
@Component("user")
public class User {

  public User() {
    this.dateCreated = new Date();
  }


  @Id
  @GeneratedValue(generator = "uuid")
  @GenericGenerator(name = "uuid", strategy = "uuid.hex")
  @Column(name = "id", length = 32)
  private String id;
  @Column(name = "email", length = 150)
  private String email;

 //setters and getters
}

我的測試課就是這樣

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:META-INF/test-project-admin-config.xml"})
@TransactionConfiguration(defaultRollback=true)
@Transactional
public class UserDAOImplTest {
    //@Autowired
    @Resource(name="manager")
    Manager manager;

    @Autowired
    UserDAO userDAO;

    public UserDAOImplTest() {
    }

    @Test
    public void testSave() {
        User u1 = manager.CreateUser();
        u1.setEmail("misterjojtoo@gmail.com");
        u1.setFullname("joseph djomeda");
        u1.setPassword("psaumedetdavid");
        userDAO.save(u1);
        User expResult = u1;

        User result = (User)userDAO.getById(u1.getId());

        Assert.assertEquals(expResult, result);
        Assert.assertEquals(expResult.getId(), result.getId());
     }

    }

我有這個錯誤:

org.springframework.beans.factory.NoSuchBeanDefinitionException:找不到類型為[com.project.personal.admin.manager.Manager]的匹配bean依賴:預期至少有一個bean符合此依賴關系的autowire候選者。 依賴注釋:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}

大部分時間我在每個類的applicationcontext中創建條目,並且它一直在工作,這次我想嘗試包掃描。 這是我做得不好的事嗎? 我已經嘗試了Autowired以及后來的資源。 所以我沒有想法

謝謝你讀這個。

確保你的Manager在正確的包中(或你的base-package正確設置)(我不會提到這一點,但在模型包中有經理似乎很可疑)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM