我實現JSF +春集成的Web應用程序,我有幾個服務類象下面這樣:如何獲取並設置Spring的Autowired對象?
@Service
@Transactional
public class AccountService
{
@Autowired
private AccountRepository accountRepository;
public AccountRepository getRepository()
{
return accountRepository;
}
public Account insertOrUpdate(Account entity)
{
return accountRepository.save(entity);
}
public Account findOne(Account entiti)
{
return accountRepository.findOne(entiti.getId());
}
//some other methods
}
我想實現一個基類,它包含了類似下面的所有服務類常用的方法:
@Service
@Transactional
public class BaseService
{
JpaRepository repository;
public void setRepository(JpaRepository repository)
{
this.repository = repository;
}
public BaseEntity insertOrUpdate(BaseEntity entity)
{
return (BaseEntity) repository.save(entity);
}
public BaseEntity findOne(BaseEntity entity)
{
return (BaseEntity) repository.findOne(entity.getId());
}
}
但這裏的問題是如何動態地自動裝配倉庫動態?我試圖從下面的子類設置存儲庫,但不起作用。當我在超類中使用repository
對象時,將導致NullPointerException
。有關如何實現這一目標的任何建議?
@Service
@Transactional
public class AccountService extends BaseService
{
@Autowired
private AccountRepository accountRepository;
public AccountService()
{
super.setRepository(accountRepository);
}
}