Spring 错误@自动连接到另一个项目的接口
org.springframework.beans.factory.BeanCreationException:创建名为“MiParteTrabajoDao”的bean时出错:自动关联依赖项的注入失败;嵌套异常为org.springframework.beans.factory.beancreatitionException:无法自动关联字段:private com.mydomain.repository.produccion.ParteTrabajoRepository com.mydomain.dao.produccion.ParteTrabajoDaoExample.partetrabajodaoRepository;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:未找到依赖项类型为[com.mydomain.repository.produccion.ParteTrabajoRepository]的符合条件的bean:应至少有1个bean符合此依赖项的autowire候选项的条件。依赖项注释:{@javax.inject.inject()}Spring 错误@自动连接到另一个项目的接口,spring,Spring,org.springframework.beans.factory.BeanCreationException:创建名为“MiParteTrabajoDao”的bean时出错:自动关联依赖项的注入失败;嵌套异常为org.springframework.beans.factory.beancreatitionException:无法自动关联字段:private com.mydomain.repository.produccion.ParteTrabajoRepository com.mydomai
您可能错过了实现ParteTrabajoRepository接口的bean
com.mydomain.repository.produccion.ParteTrabajoRepository
只是一个接口,但它需要一个具体的实现,才能注入@Autowired
EnableJpaRepositories的值是错误的。
该值是一个数组,因此应为
您声明它的方式spring将尝试只扫描一个名为
com.mydomain.repository,com.mydomain.dao
这肯定不是您想要的。请原谅我对spring的有限经验,我创建了服务配置。但是我不能被实现为DAO的接口。
package com.mydomain.repository;
import java.io.Serializable;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.NoRepositoryBean;
@NoRepositoryBean
public interface CrudRepository<T, ID extends Serializable> extends JpaRepository<T, ID> {
@Override
<S extends T> S save(S entity);
@Override
T findOne(ID primaryKey);
@Override
List<T> findAll();
@Override
long count();
@Override
void delete(T entity);
@Override
boolean exists(ID primaryKey);
}
package com.mydomain.repository.produccion;
public interface ParteTrabajoRepository extends CrudRepository<PParteTrabajo, PParteTrabajoPK> {
@Query(value = "select u from PParteTrabajo u where u.idParteTrabajo like %?1", nativeQuery = true)
public PParteTrabajo findByIdParteTrabajo(int idParteTrabajo);
}
package com.mydomain.dao.produccion;
public interface ParteTrabajoDaoI {
public List<PParteTrabajo> findAll();
}
package com.mydomain.dao.produccion;
@Repository("MiParteTrabajoDao")
public class ParteTrabajoDaoExample implements ParteTrabajoDaoI {
@Autowired
private ParteTrabajoRepository parteRepository;
@Override
public List<PParteTrabajo> findAll() {
final List<PParteTrabajo> lista = parteRepository.findAll();
return null;
}
}
package com.mydomain.services.produccion;
import com.mydomain.entities.produccion.PParteTrabajo;
import com.mydomain.util.dao.DaoException;
import com.mydomain.util.exception.FindException;
public interface ParteTrabajoServiceI<T> {
public T iniciarParteTrabajo(int idMaquina, int idEstacion, int idOperario, int idTrabajo, int idOrden)
throws FindException;
public PParteTrabajo iniciarFinalizarParteTrabajo(int idMaquina, int idEstacion, int idOperario, int idTrabajo,
int idOrden) throws FindException, DaoException;
public T iniciarParteTrabajoMaquinaTrabajoUnico(int idMaquina, int idOperario, int idOrden) throws FindException,
DaoException;
public PParteTrabajo finalizarParteTrabajo(T parteTrabajoIniciado, BigDecimal cantidad) throws DaoException,
FindException;
public List<PParteTrabajo> finalizarPartesTrabajosIniciados(int idMaquina, int idOperario) throws FindException,
DaoException;
public List<T> getPartesTrabajoIniciados(int idMaquina, int idOperario) throws FindException;
public List<T> getPartesTrabajoIniciados(int idMaquina) throws FindException;
public List<T> findAll() throws FindException;
}
package com.mydomain.services.produccion;
import com.mydomain.dao.produccion.ParteTrabajoDaoI;
import com.mydomain.entities.produccion.PParteTrabajo;
import com.mydomain.util.dao.DaoException;
import com.mydomain.util.exception.FindException;
@Service("parteTrabajoServicePrueba")
public class ParteTrabajoServiceExample implements
ParteTrabajoServiceI<ParteTrabajoServiceExample.ParteTrabajoIniciado> {
@Autowired
@Qualifier("MiParteTrabajoDao")
private ParteTrabajoDaoI parteTrabajoDaoI;
@Override
public List<ParteTrabajoIniciado> getPartesTrabajoIniciados(final int idMaquina, final int idOperario) {
return null;
}
public class ParteTrabajoIniciado {
private final PParteTrabajo parte;
private ParteTrabajoIniciado(final PParteTrabajo parteTrabajo) {
parte = parteTrabajo;
}
public int getIdOrdenProduccion() {
return parte.getIdOrdenProduccion();
}
}
....
}
package com.mydomain.iweb;
@SpringBootApplication
@Configuration
@Import(com.mydomain.services.ServicesBeanConfig.class)
@EnableTransactionManagement
@EnableAutoConfiguration
@PropertySource("file:etc/application.properties")
@EnableJpaRepositories("com.mydomain.repository,com.mydomain.dao")
public class Application {
private static final Logger LOG = LoggerFactory.getLogger(Application.class.getName());
@Value("${spring.datasource.jndi-name}")
private String jndiResourceName;
@Value("${spring.datasource.name}")
private String jdbcName;
@Value("${spring.datasource.driver-class-name}")
private String jdbcDriverClassName;
@Value("${spring.datasource.url}")
private String jdbcUrl;
@Inject
ApplicationContext ctx;
public static void main(final String[] args) {
SpringApplication.run(Application.class, args);
}
.....
}
@EnableJpaRepositories(value ={"com.mydomain.repository","com.mydomain.dao"})