【发布时间】:2017-01-02 07:42:51
【问题描述】:
我有以下类 UserAuthorityRepository 作为存储库:
@Repository
public class UserAuthorityRepository extends BaseRepository<UserAuthority, Long> implements IUserAuthorityRepository {
public UserAuthorityRepository(Class<UserAuthority> domainClass, EntityManager em) {
super(domainClass, em);
}
}
在UserAuthorityService 我有:
@Service
public class UserAuthorityService extends BaseService<UserAuthority, Long> implements IUserAuthorityService {
private static final Logger LOGGER = LoggerFactory.getLogger(UserAuthorityService.class);
@Autowired
private IUserAuthorityRepository userAuthorityRepo;
public UserAuthorityService() {
super();
LOGGER.info("UserAuthorityService Has Been Created");
}
@Bean
@Override
public Class<UserAuthority> getDomain() {
return UserAuthority.class;
}
@Override
public IBaseRepository<UserAuthority, Long> getRepository() {
return userAuthorityRepo;
}
}
但我的应用程序在启动时出现异常如下:
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in com.bia2hd.dao.impl.UserAuthorityRepository required a bean of type 'java.lang.Class' that could not be found.
Action:
Consider defining a bean of type 'java.lang.Class' in your configuration.
【问题讨论】:
-
@JoeC 谢谢,但是我没有xml配置,都是注解。
-
这里可能是个愚蠢的问题......但是为什么你需要在这种情况下注入
Class?你的构造函数参数的唯一合法值是UserAuthority.class,那么为什么不在你的超构造函数调用中显式设置它而不是依赖它被注入(然后只需要注入EntityManager)? -
尽管您对这里的整个愚蠢问题有什么看法,但问题更复杂。有十几个存储库出现这种情况。
-
请看我的另一篇文章
标签: java spring spring-boot spring-data