我实现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);
}
}