Fehler beim erstellen bean mit dem Namen im Frühjahr
(Frühjahr Neuling also entschuldige mich im Voraus für etwaige offensichtliche Fehler)
Versuchen, um eine Authentifizierung Seite mit der Feder. Die folgende Fehlermeldung erhalten:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'JDBCLoginDAOImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private javax.sql.DataSource org.project.shoppingcart.dao.jdbc.JDBCLoginDAOImpl.dataSource; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [javax.sql.DataSource] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631)
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588)
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645)
org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508)
org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449)
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133)
javax.servlet.GenericServlet.init(GenericServlet.java:160)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
com.springsource.insight.collection.tcserver.request.HttpRequestOperationCollectionValve.invoke(HttpRequestOperationCollectionValve.java:84)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:680)
=====
Hier ist meine app-context.xml:
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<description>Example configuration to get you started.</description>
<context:annotation-config />
<context:component-scan base-package="org.project.shoppingcart" />
<context:component-scan base-package="org.project.shoppingcart." />
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver_class}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" lazy-init="true">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
=======
Hier ist meine JDBCLoginDAOImpl.java:
@Repository
public class JDBCLoginDAOImpl implements LoginDao {
@Autowired
private DataSource dataSource;
private SimpleJdbcTemplate jdbcTemplate;
@PostConstruct
public void setup() {
jdbcTemplate = new SimpleJdbcTemplate(dataSource);
}
public boolean validateUser(String Username, String Password) {
int count = 0;
String query = "select count(*) from products where username = "+Username+
"and password = "+Password;
count = jdbcTemplate.queryForInt(query);
if (count > 0) {
return true;
}
else {
return false;
}
}
}
- versuchen Sie stackoverflow.com/a/13363083/715269
- Bitte geben Sie Ihre web.xml die Einfuhren von Ihrem JDBCLoginDAOImpl und der code, der verwendet Ihre JDBCLoginDAOImpl. BTW, warum sind Sie deklarieren 2 transaction Manager?
- Können Sie überprüfen, ob Ihre Datenbank-connecter, d.h. wenn Ihr Hinzugefügt wird als Abhängigkeit zum Projekt. wenn Ihr driver_class = com.mysql.jdbc.Treiber solltest du eine entsprechende mysql-connecter-java-Bibliothek für Ihr Projekt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein setup sieht fast richtige für mich, nur lästig, etwas, das ich finden kann ist dieses:
Dies ist ein Doppel-Komponente Scannen, ich bin mir ziemlich sicher, dass die oben genannten zwei Aussagen gleich sind (zumindest sind Sie beide match-sub-Pakete von Warenkorb, möglich, dass Sie auch beide match-Warenkorb). Sowieso, erstellen Sie mehrere Bohnen mehrere Male. Ich würde beginnen Sie mit der Reinigung, dass Sie bis (verliert einer von Ihnen) und vielleicht ist Ihr problem gehen Weg.
<tx:annotation-driven />
. Es gibt keinen Punkt, der mit einer Transaktions-manager, wenn Sie ihn nicht benutzen.ändern
durch:
und fügen Sie den import:
import org.springframework.jdbc.datasource.DriverManagerDataSource;
einstellen und die getter-und setter -