有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java组织。springframework。豆。工厂UnsatifiedPendencyException:创建名为“ServicePersonalUrgenceAsImplementAcion”的bean时出错

所以,我对SpringMVC还很陌生,我觉得我在配置方面遇到了问题,我快疯了

我已经尝试过这个解决方案,但要么我无法使它工作,要么我的错误是不同的

我得到的错误是:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'servicioPersonalUrgenciasImplementacion': Unsatisfied dependency expressed through field 'dao'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.modelo.dao.PersonalUrgenciasDAO' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

我的组件是: 控制器。在com中。Controladors软件包

@Controller
public class LoginController {
    
    private ServicioPersonalUrgenciasLogin service;

    @Autowired
    public void setServicioPersonalUrgenciasLogin( ServicioPersonalUrgenciasLogin service) {
        this.service = service;
    }
    
    
    @GetMapping("login")
    public String login(Model model) {
        PersonalUrgenciasLogin login = new PersonalUrgenciasLogin();

        //Add customers to the model
        model.addAttribute("login", login);
        
        return "login";
    }
...
}

com中的服务接口和服务实现。莫德罗。服务

@Service
public interface ServicioPersonalUrgenciasLogin {

    public boolean login(String username, String pwd) throws NoSuchAlgorithmException, UnsupportedEncodingException;
    
    public void cambiarContrasenia(String username, String newpwd);
}

@Service
public class ServicioPersonalUrgenciasLoginImplementacion implements ServicioPersonalUrgenciasLogin {

    @Autowired
    private PersonalUrgenciasLoginDAO dao;
    
    @Override
    @Transactional
    public boolean login(String username, String pwd) throws NoSuchAlgorithmException, UnsupportedEncodingException {
        return dao.login(username, pwd);
    }

    @Override
    @Transactional
    public void cambiarContrasenia(String username, String newpwd) {
        // I have to implement this, 

    }

}

DAO接口和实现,都在com中。莫德罗。dao包

我知道这不是实现登录的方法,但是我想要一些快速的东西

public interface PersonalUrgenciasLoginDAO {

    public boolean login(String username, String pwd) throws NoSuchAlgorithmException, UnsupportedEncodingException;
    
    public void cambiarContrasenia(String username, String newpwd);
}

@Repository
public class PersonalUrgenciasLoginDAOImplementacion implements PersonalUrgenciasLoginDAO{

    @Autowired
    private SessionFactory factoria;
    
    @Override
    public boolean login(String username, String pwd) throws NoSuchAlgorithmException, UnsupportedEncodingException {
        Session sesion = factoria.getCurrentSession();

        
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        byte[] hashInOne = md5.digest(pwd.getBytes("UTF-8"));
        String hashMD5String = getString(hashInOne);
        
        
        Query<String> query2 = sesion.createQuery(
                "SELECT usuario FROM PersonalUrgencias WHERE contrasenia=: pwd AND usuario =:user", String.class);
        query2.setParameter("user", username);
        query2.setParameter("pwd", hashMD5String);
        List<String> haLogueado = query2.getResultList();
        
        return !haLogueado.isEmpty();
    }

    @Override
    public void cambiarContrasenia(String username, String newpwd) {
        // TODO Auto-generated method stub
        
    }
    
    
    private static String getString( byte[] bytes ) 
    {
      StringBuffer sb = new StringBuffer();
      for( int i=0; i<bytes.length; i++ )     
      {
         byte b = bytes[ i ];
         String hex = Integer.toHexString((int) 0x00FF & b);
         if (hex.length() == 1) 
         {
            sb.append("0");
         }
         sb.append( hex );
      }
      return sb.toString();
    }

我的实体。我知道它不是有线的,但我不想这样

然后,我的网络。xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">
    <display-name>triaje</display-name>

    <absolute-ordering />

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

这是我的应用程序上下文。xml 我也尝试过在<context:component-scan...>中编写com

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- Add support for component scanning -->
    <context:component-scan base-package="com, com.controladores, com.modelo.dao, com.modelo.entidades, com.modelo.servicios" />

    <!-- Add support for conversion, formatting and validation support -->
    <mvc:annotation-driven/>

    <!-- Define Spring MVC view resolver -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/" />
        <property name="suffix" value=".jsp" />
    </bean>

    <!-- Step 1: Define Database DataSource / connection pool -->
    <bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
          destroy-method="close">
        <property name="driverClass" value="com.mysql.cj.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3316/trj?useSSL=false&amp;serverTimezone=UTC" />
        <property name="user" value="root" />
        <property name="password" value="root" /> 

        <!-- these are connection pool properties for C3P0 -->
        <property name="minPoolSize" value="5" />
        <property name="maxPoolSize" value="20" />
        <property name="maxIdleTime" value="30000" />
    </bean>  
    
    <!-- Step 2: Setup Hibernate session factory -->
    <bean id="factoria"
        class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="myDataSource" />
        <property name="packagesToScan" value="com.modelo.entidades" />
        <property name="hibernateProperties">
           <props>
              <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
              <prop key="hibernate.show_sql">true</prop>
           </props>
        </property>
   </bean>    

    <!-- Step 3: Setup Hibernate transaction manager -->
    <bean id="myTransactionManager"
            class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="factoria"/>
    </bean>
    
    <!-- Step 4: Enable configuration of transactional behavior based on annotations -->
    <tx:annotation-driven transaction-manager="myTransactionManager" />

    <!--  Add support for reading web resources: css, images, js... -->
    <mvc:resources location="/resources/" mapping="/resources/**"></mvc:resources>
</beans>

我对读过这一切的人既感激又抱歉


共 (0) 个答案