Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 不需要类型为至少1个符合autowire候选条件的bean的符合条件的bean_Spring Boot - Fatal编程技术网

Spring boot 不需要类型为至少1个符合autowire候选条件的bean的符合条件的bean

Spring boot 不需要类型为至少1个符合autowire候选条件的bean的符合条件的bean,spring-boot,Spring Boot,没有类型为“com.ms.common.subscription.service.client.SubscriptionDetailService”的符合条件的bean可用:至少需要1个符合autowire候选条件的bean。依赖项注释:{}我遇到了无法运行代码的问题,但我已尝试添加@Service@Repository package com.ms.batch.inactiveUser.rest.repository; import com.ms.batch.inactiveUser.res

没有类型为“com.ms.common.subscription.service.client.SubscriptionDetailService”的符合条件的bean可用:至少需要1个符合autowire候选条件的bean。依赖项注释:{}我遇到了无法运行代码的问题,但我已尝试添加@Service@Repository

package com.ms.batch.inactiveUser.rest.repository;

import com.ms.batch.inactiveUser.rest.model.entity.CorporateUser;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.UUID;

@Repository
public interface InactiveUserRepository extends JpaRepository<CorporateUser, UUID> {
    @Query("select u,t,prov from CorporateUser u " +
            "join u.corporate t " +
            "join t.country prov " +
            "where "+
            nvl(sec.lastLogon,cast(sec.dateCreated as date))) ")
    List<CorporateUser>findUser(@Param("userid")String userid);
}

在服务中添加订阅时出错,否则它将运行并显示结果

应用程序(主类)

DTO

服务

package com.ms.batch.inactiveUser.rest.service;

import com.ms.batch.inactiveUser.rest.model.dto.CorporateUserDTO;
import com.ms.batch.inactiveUser.rest.model.entity.CorporateUser;
import com.ms.batch.inactiveUser.rest.model.entity.SecurityPolicy;
import com.ms.batch.inactiveUser.rest.model.entity.User;
import com.ms.batch.inactiveUser.rest.repository.InactiveUserRepository;
import com.ms.batch.inactiveUser.rest.repository.SecurityPolicyRepository;
import com.ms.batch.inactiveUser.rest.repository.UserRepository;
import com.ms.common.subscription.model.request.SubscriptionDetailRequest;
import com.ms.common.subscription.model.response.SubscriptionDetailResponse;
import com.ms.common.subscription.service.client.SubscriptionDetailService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service("inactiveUserService")
@Transactional
@AllArgsConstructor
@Slf4j
public class InactiveUserServiceImpl implements InactiveUserService {

    @Autowired
    private InactiveUserRepository inactiveUserRepository;
    @Autowired
    private SecurityPolicyRepository securityPolicyRepository;
    @Autowired
    private UserRepository userRepository;

    @Autowired
   // @Qualifier("SubscriptionDetailService")
    private SubscriptionDetailService subscriptionDetailService;

    @Override
    public List<CorporateUserDTO> findCorporateUser() {
        
        List<CorporateUserDTO> corporateUserDTOList = new ArrayList<>();
        if(CollectionUtils.isEmpty(user)){
            log.debug("testing user:error");
          
        }else {
            for (int i = 0; i < user.size(); i++) {
           
                List<CorporateUser> corporateUser = inactiveUserRepository.findUser(user.get(i).getUserID());
                log.debug("testing my: " +corporateUser.get(0).getUserName());

                String subscriptionCode = "IA_US";
                for(int j = 0; j < corporateUser.size(); j++){
                    CorporateUserDTO corporateUserDTO = new CorporateUserDTO();
                    corporateUserDTO.setOranizationID(corporateUser.get(j).getCorporate().getOrganizationID());
                    corporateUserDTO.setCoperateID(corporateUser.get(j).getCorporateID());
                    corporateUserDTO.setUserID(user.get(j).getUserID());
                    corporateUserDTO.setUserName(corporateUser.get(j).getUserName());
                    corporateUserDTO.setLocalContactNo(corporateUser.get(j).getCorporate().getCountry().getLocalContactNo());
                    corporateUserDTO.setOverseaContactNo(corporateUser.get(j).getCorporate().getCountry().getOverseaContactNo());
                    
                    corporateUserDTOList.add(corporateUserDTO);

                    Map<String, SubscriptionDetailResponse> subscriptionList = getSubscriptionDetails(corporateUserDTO.getUserID(),subscriptionCode);
                    log.debug("testing subscription: " +subscriptionList);
                }
            }
        }
        return corporateUserDTOList;
    }

    @Override
  //  @Qualifier("SubscriptionDetailService")
    @Bean
    public Map<String, SubscriptionDetailResponse> getSubscriptionDetails(String userId, String subscriptionCode) {
        log.debug("process getSubscriptionDetails - userId : "+ userId);
        log.debug("process getSubscriptionDetails - subscriptionCode : "+ subscriptionCode);

        SubscriptionDetailRequest subscriptionDetailRequest = new SubscriptionDetailRequest();
        Map<String, Object> recipientSettingMap = new HashMap<String, Object>();
        recipientSettingMap.put("userId", userId);
        subscriptionDetailRequest.setSubscriptionItemCode(subscriptionCode);
        subscriptionDetailRequest.setRecipientSettingValue(recipientSettingMap);

        return subscriptionDetailService.getSubscriptionDetails(subscriptionDetailRequest);
    }
}


编辑问题以添加代码和包结构我已经编辑了服务、回购和控制器的代码,请帮助,谢谢请添加主类。添加主类Hey@MyMickei,您的代码在我看来是正确的。我在这一行中只有一个问题
@EnableJpaRepositories(“com.ms.batch.inactiveuser.rest.repository”)
批的拼写错误,可能是因为相同的原因没有找到bean编辑问题以添加代码和包结构我已经编辑了服务、回购和控制器的代码,请帮助,谢谢,请添加你的主类。添加主类嘿@MyMickei,你的代码在我看来是正确的。这一行中我只有一个问题
@EnableJpaRepositories(“com.ms.batch.inactiveuser.rest.repository”)
批的拼写错误,可能是因为找不到bean的相同原因
package com.ms.batch.inactiveUser.rest.service;

import com.ms.batch.inactiveUser.rest.model.dto.CorporateUserDTO;
import com.ms.batch.inactiveUser.rest.model.entity.CorporateUser;
import com.ms.batch.inactiveUser.rest.model.entity.SecurityPolicy;
import com.ms.batch.inactiveUser.rest.model.entity.User;
import com.ms.batch.inactiveUser.rest.repository.InactiveUserRepository;
import com.ms.batch.inactiveUser.rest.repository.SecurityPolicyRepository;
import com.ms.batch.inactiveUser.rest.repository.UserRepository;
import com.ms.common.subscription.model.request.SubscriptionDetailRequest;
import com.ms.common.subscription.model.response.SubscriptionDetailResponse;
import com.ms.common.subscription.service.client.SubscriptionDetailService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service("inactiveUserService")
@Transactional
@AllArgsConstructor
@Slf4j
public class InactiveUserServiceImpl implements InactiveUserService {

    @Autowired
    private InactiveUserRepository inactiveUserRepository;
    @Autowired
    private SecurityPolicyRepository securityPolicyRepository;
    @Autowired
    private UserRepository userRepository;

    @Autowired
   // @Qualifier("SubscriptionDetailService")
    private SubscriptionDetailService subscriptionDetailService;

    @Override
    public List<CorporateUserDTO> findCorporateUser() {
        
        List<CorporateUserDTO> corporateUserDTOList = new ArrayList<>();
        if(CollectionUtils.isEmpty(user)){
            log.debug("testing user:error");
          
        }else {
            for (int i = 0; i < user.size(); i++) {
           
                List<CorporateUser> corporateUser = inactiveUserRepository.findUser(user.get(i).getUserID());
                log.debug("testing my: " +corporateUser.get(0).getUserName());

                String subscriptionCode = "IA_US";
                for(int j = 0; j < corporateUser.size(); j++){
                    CorporateUserDTO corporateUserDTO = new CorporateUserDTO();
                    corporateUserDTO.setOranizationID(corporateUser.get(j).getCorporate().getOrganizationID());
                    corporateUserDTO.setCoperateID(corporateUser.get(j).getCorporateID());
                    corporateUserDTO.setUserID(user.get(j).getUserID());
                    corporateUserDTO.setUserName(corporateUser.get(j).getUserName());
                    corporateUserDTO.setLocalContactNo(corporateUser.get(j).getCorporate().getCountry().getLocalContactNo());
                    corporateUserDTO.setOverseaContactNo(corporateUser.get(j).getCorporate().getCountry().getOverseaContactNo());
                    
                    corporateUserDTOList.add(corporateUserDTO);

                    Map<String, SubscriptionDetailResponse> subscriptionList = getSubscriptionDetails(corporateUserDTO.getUserID(),subscriptionCode);
                    log.debug("testing subscription: " +subscriptionList);
                }
            }
        }
        return corporateUserDTOList;
    }

    @Override
  //  @Qualifier("SubscriptionDetailService")
    @Bean
    public Map<String, SubscriptionDetailResponse> getSubscriptionDetails(String userId, String subscriptionCode) {
        log.debug("process getSubscriptionDetails - userId : "+ userId);
        log.debug("process getSubscriptionDetails - subscriptionCode : "+ subscriptionCode);

        SubscriptionDetailRequest subscriptionDetailRequest = new SubscriptionDetailRequest();
        Map<String, Object> recipientSettingMap = new HashMap<String, Object>();
        recipientSettingMap.put("userId", userId);
        subscriptionDetailRequest.setSubscriptionItemCode(subscriptionCode);
        subscriptionDetailRequest.setRecipientSettingValue(recipientSettingMap);

        return subscriptionDetailService.getSubscriptionDetails(subscriptionDetailRequest);
    }
}

package com.ms.batch.inactiveUser.rest.controller;

import com.ms.batch.inactiveUser.rest.service.InactiveUserService;
import com.ms.batch.inactiveUser.rest.model.dto.CorporateUserDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

@RestController
@RequestMapping(value = "/v1")
@Slf4j
public class InactiveUserController {

    @Autowired
    private InactiveUserService inactiveUserService;

    @PostMapping(value = "/getReceipentUserInactive")
    @ResponseStatus(HttpStatus.OK)
    public List<CorporateUserDTO> getCorporateUser(HttpServletRequest request){
       //CorporateUser username= inactiveUserService.getAll();
        //CorporateUserVO corporateUserVO = (CorporateUserVO)request.getAttribute();
        return inactiveUserService.findCorporateUser();
    }
}
package com.ms.batch.inactiveUser.rest.repository;

import com.ms.batch.inactiveUser.rest.model.entity.CorporateUser;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.UUID;

@Repository
public interface InactiveUserRepository extends JpaRepository<CorporateUser, UUID> {
    @Query("select u,t,prov from CorporateUser u " +
            "join u.corporate t " +
            "join t.country prov " +
            "where "+
            nvl(sec.lastLogon,cast(sec.dateCreated as date))) ")
    List<CorporateUser>findUser(@Param("userid")String userid);
}

public interface InactiveUserService {
    List<CorporateUserDTO> findCorporateUser();
   // List<UserVO> findUser();
    Map<String, SubscriptionDetailResponse> getSubscriptionDetails(String userId, String subscriptionCode);

}
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.ms.batch.inactiveUser.rest.repository.InactiveUserRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
    at 
org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[spring-context-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
    at com.ocbc.ms.batch.inactiveUser.BatchInactiveUserApplication.main(BatchInactiveUserApplication.java:26) ~[classes/:na]

2020-08-21 11:04:12.490 ERROR 10992 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in com.ms.batch.inactiveUser.rest.service.InactiveUserServiceImpl required a bean of type 'com.ms.batch.inactiveUser.rest.repository.InactiveUserRepository' that could not be found.

The injection point has the following annotations:
    - @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type 'com.ms.batch.inactiveUser.rest.repository.InactiveUserRepository' in your configuration.

Disconnected from the target VM, address: '127.0.0.1:57489', transport: 'socket'

Process finished with exit code 1