Spring部署期间依赖注入问题

2024-04-29

我正在启动一个 Primefaces/Spring/Hibernate 项目,并且仍在学习如何正确处理这些组件。但就在此时,我面临着一个与 spring 依赖注入相关的问题,这让我很害怕。我已经在网上寻找答案两天了,但找不到我的代码有什么问题。我尝试了两种自动装配方法(@Autowire 和 @Inject)。有人可以看一下我的代码并检查出了什么问题吗?我的代码如下。

这是部署过程中的错误日志:

21:29:14,419 INFO  [org.springframework.web.context.support.XmlWebApplicationContext] Bean 'entityManagerFactory' of type [class org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
21:29:14,441 INFO  [org.springframework.beans.factory.support.DefaultListableBeanFactory] Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@68a0d2d2: defining beans [org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0,org.springframework.web.servlet.handler.SimpleUrlHandlerMapping#0,org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,mvcContentNegotiationManager,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#0,org.springframework.web.servlet.handler.MappedInterceptor#0,org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver#0,org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver#0,org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver#0,pessoaBean,pessoaServiceImpl,pessoaDAOImpl,org.springframework.web.servlet.view.InternalResourceViewResolver#0,dataSource,entityManagerFactory,transactionManager,org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor#0,org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy
21:29:14,504 INFO  [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] Mapped URL path [/**] onto handler 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'
21:29:14,716 INFO  [org.springframework.beans.factory.support.DefaultListableBeanFactory] Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@68a0d2d2: defining beans [org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0,org.springframework.web.servlet.handler.SimpleUrlHandlerMapping#0,org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,mvcContentNegotiationManager,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#0,org.springframework.web.servlet.handler.MappedInterceptor#0,org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver#0,org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver#0,org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver#0,pessoaBean,pessoaServiceImpl,pessoaDAOImpl,org.springframework.web.servlet.view.InternalResourceViewResolver#0,dataSource,entityManagerFactory,transactionManager,org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor#0,org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy
21:29:14,739 INFO  [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean] Closing JPA EntityManagerFactory for persistence unit 'CentralSisatPersistenceUnit'
21:29:14,741 ERROR [org.springframework.web.context.ContextLoader] Context initialization failed: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pessoaServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private br.com.centralemprestimos.sisat.persistence.PessoaDAO br.com.centralemprestimos.sisat.service.PessoaServiceImpl.pessoaDAO; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [br.com.centralemprestimos.sisat.persistence.PessoaDAO] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.inject.Inject()}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1146) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) [spring-context-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) [spring-context-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410) [spring-web-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) [spring-web-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) [spring-web-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_21]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_21]
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private br.com.centralemprestimos.sisat.persistence.PessoaDAO br.com.centralemprestimos.sisat.service.PessoaServiceImpl.pessoaDAO; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [br.com.centralemprestimos.sisat.persistence.PessoaDAO] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.inject.Inject()}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:517) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:286) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
... 21 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [br.com.centralemprestimos.sisat.persistence.PessoaDAO] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.inject.Inject()}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:988) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:858) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:770) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:489) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
... 23 more

21:29:14,771 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/Central]] Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pessoaServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private br.com.centralemprestimos.sisat.persistence.PessoaDAO br.com.centralemprestimos.sisat.service.PessoaServiceImpl.pessoaDAO; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [br.com.centralemprestimos.sisat.persistence.PessoaDAO] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.inject.Inject()}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1146) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) [spring-context-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) [spring-context-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410) [spring-web-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) [spring-web-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) [spring-web-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_21]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_21]
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private br.com.centralemprestimos.sisat.persistence.PessoaDAO br.com.centralemprestimos.sisat.service.PessoaServiceImpl.pessoaDAO; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [br.com.centralemprestimos.sisat.persistence.PessoaDAO] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.inject.Inject()}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:517) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:286) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
... 21 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [br.com.centralemprestimos.sisat.persistence.PessoaDAO] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.inject.Inject()}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:988) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:858) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:770) [spring-beans-3.2.7.RELEASE.jar:3.2.7.RELEASE]
at ...

web.xml

<display-name>Central</display-name>
<welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<context-param>
    <param-name>primefaces.UPLOADER</param-name>
    <param-value>auto</param-value>
</context-param>
<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
    <init-param>
        <param-name>uploadDirectory</param-name>
        <param-value>c:/primefaces/</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>

</web-app>

应用程序上下文.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:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    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
                        http://www.springframework.org/schema/tx
                        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
                        http://www.springframework.org/schema/mvc 
                        http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">

<mvc:default-servlet-handler/>                          
<context:annotation-config/>
<mvc:annotation-driven />

<context:component-scan base-package="  br.com.centralemprestimos.sisat.mbean,
                                        br.com.centralemprestimos.sisat.service,
                                        br.com.mobinn.fmwk.persistence,
                                        br.com.centralemprestimos.sisat.persistence,
                                        br.com.centralemprestimos.sisat.service,
                                        br.com.mobinn.fmwk.service"/>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value=".jsp" />
</bean>


<!-- Data Source Declaration -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/central" />
    <property name="username" value="root" />
    <property name="password" value="root" />
</bean>


<!-- Entity Manager Factory Declaration -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="persistenceUnitName" value="CentralSisatPersistenceUnit" />
    <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" /> 
    <property name="packagesToScan">
        <list>
            <value>br.com.mobinn.fmwk.persistence</value>
            <value>br.com.centralemprestimos.sisat.entity</value>
            <value>br.com.centralemprestimos.sisat.persistence</value>
        </list>
    </property>
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="database" value="MYSQL" />
        </bean>
    </property>
 </bean>    

 <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
    <property name="dataSource" ref="dataSource"/>
 </bean>

 <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
 <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>

 <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="false"/>

</beans>

持久性.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="CentralSisatPersistenceUnit">

    <class>br.com.centralemprestimos.sisat.entity.Telefone</class>
    <class>br.com.centralemprestimos.sisat.entity.Pessoa</class>

    <properties>
        <property name="eclipselink.target-database" value="MySQL"/>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>

        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        <property name="hibernate.max_fetch_depth" value="3"/>
        <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />
        <property name="hibernate.generate_statistics" value="true"/>
        <property name="show_sql" value="true"/>
        <property name="hibernate.show_sql" value="false"/>  
        <property name="hibernate.format_sql" value="false"/>
        <property name="eclipselink.logging.level" value="DEBUG"/>
    </properties>
</persistence-unit>

</persistence>

PessoaDAOImpl.java

package br.com.centralemprestimos.sisat.persistence;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.stereotype.Repository;

import br.com.centralemprestimos.sisat.entity.Pessoa;
import br.com.mobinn.fmwk.persistence.GenericDAOImpl;

@Repository
public class PessoaDAOImpl extends GenericDAOImpl<Pessoa>{

@PersistenceContext(name="CentralSisatPersistenceUnit")
protected EntityManager entityManager;

public void doSomething() {
    System.out.println("Bean was correctly injected!");
}

}

PessoaBean.java

package br.com.centralemprestimos.sisat.mbean;

import java.io.Serializable; ...

import javax.inject.Inject;

import org.jboss.logging.Logger;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import br.com.centralemprestimos.sisat.entity.Pessoa;
import br.com.centralemprestimos.sisat.entity.Telefone;
import br.com.centralemprestimos.sisat.service.PessoaService;
import br.com.centralemprestimos.sisat.util.FacesUIHelper;
import br.com.mobinn.fmwk.exception.BusinessException;

@Component
@Scope("request")
public class PessoaBean implements Serializable {

private static final long serialVersionUID = 1L;
public Logger logger =             Logger.getLogger("br.com.centralemprestimos.sisat.mbean.PessoaBean");

@Inject
private PessoaService pessoaService;

PessoaServiceImpl.java

package br.com.centralemprestimos.sisat.service;

import java.io.Serializable;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import br.com.centralemprestimos.sisat.entity.Pessoa;
import br.com.centralemprestimos.sisat.persistence.PessoaDAO;
import br.com.mobinn.fmwk.service.GenericServiceImpl;

@Service
public class PessoaServiceImpl extends GenericServiceImpl<Pessoa> implements Serializable, PessoaService {

@Inject
private PessoaDAO pessoaDAO;

public PessoaDAO getPessoaDAO() {
    return pessoaDAO;
}

public void setPessoaDAO(PessoaDAO pessoaDAO) {
    this.pessoaDAO = pessoaDAO;
}

}

提前致谢。


Spring 正在尝试自动装配PessoaDAO豆子在PessoaServiceImplclass(默认情况下按类型完成),但是没有该类型的 bean。

您可以在堆栈跟踪中看到这一点:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [br.com.centralemprestimos.sisat.persistence.PessoaDAO] 

我假设PessoaDAO是一个接口,你的意思是PessoaDAOImpl来实施它。如果你让这个类实现接口,Spring 应该根据类型自动装配 bean。

@Repository
public class PessoaDAOImpl extends GenericDAOImpl<Pessoa> implements PessoaDAO{

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring部署期间依赖注入问题 的相关文章

  • 通过Zuul上传大文件

    我在通过 zuul 上传大文件时遇到问题 我正在使用 apache commons 文件上传 https commons apache org proper commons fileupload https commons apache o
  • 什么是内部类的合成反向引用

    我正在寻找应用程序中的内存泄漏 我正在使用的探查器告诉我寻找这些类型的引用 但我不知道我在寻找什么 有人可以解释一下吗 Thanks Elliott 您可以对 OUTER 类进行合成反向引用 但不能对内部类实例进行合成 e g class
  • Spring(MVC)SQL注入避免?

    我想知道 Spring MVC 如何处理 SQL 注入 以及其他安全问题 XSS 代码 javascript 注入等 我主要讨论的是转义添加到数据库等的值 我似乎找不到任何答案 因为每次我搜索涉及依赖注入的 spring sql 注入结果时
  • 自定义列表字段点击事件

    我正在编写一个应用程序 其中我创建了用于显示列表视图的自定义列表字段 我的 CustomListField 包含连续的一个图像和文本 我正在通过单击列表字段行获取字段更改侦听器 但我也想将字段更改侦听器放在图像上 谁能告诉我我该怎么做 这是
  • Java中Gson、JsonElement、String比较

    好吧 我想知道这可能非常简单和愚蠢 但在与这种情况作斗争一段时间后 我不知道发生了什么 我正在使用 Gson 来处理一些 JSON 元素 在我的代码中的某个位置 我将 JsonObject 的 JsonElements 之一作为字符串获取
  • 如何从控制器访问片段中的片段?

    我有一个名为 cutleryCustomerSearch 的视图 其中包含 替换 一个片段 div div div div 在此片段中 我有一个表 我喜欢通过 ajax 更新它 table 我如何设置处理 ajax 请求的控制器方法的返回
  • 如何使用 Java 引用释放 Java Unsafe 内存?

    Java Unsafe 类允许您按如下方式为对象分配内存 但是使用此方法在完成后如何释放分配的内存 因为它不提供内存地址 Field f Unsafe class getDeclaredField theUnsafe Internal re
  • getCurrentSession 在网络中休眠

    我正在使用 hibernate 和 jsp servlet 编写一个基于 Web 的应用程序 我读过有关sessionFactory getCurrentSession and sessionFactory openSession方法 我知
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • 如何使用双重调度来分析图形基元的交集?

    我正在分析图形基元 矩形 直线 圆形等 的交互并计算重叠 相对方向 合并等 这被引用为双重调度的一个主要示例 例如维基百科 http en wikipedia org wiki Double dispatch 自适应碰撞算法通常要求 不同的
  • 如何在 IntelliJ IDEA 中运行 akka actor

    来自 Akka 网站文档 然后 这个主要方法将创建所需的基础设施 运行演员 启动给定的主要演员并安排 一旦主要参与者终止 整个应用程序就会关闭 因此 您将能够使用类似于以下的命令运行上面的代码 下列的 java classpath akka
  • 数据库中的持久日期不等于检索日期

    我有一个具有 Date 属性的简单实体类 此属性对应于 MySQL 日期时间列 Entity public class Entity Column name start date Temporal TemporalType TIMESTAM
  • 类更改(例如字段添加或删除)是否保持 Serialized 的向后兼容性?

    我有一个关于 Java 序列化的问题 在这种情况下 您可能需要修改可序列化类并保持向后兼容性 我有丰富的 C 经验 所以请允许我将 Java 与 NET 进行比较 在我的Java场景中 我需要使用Java的运行时序列化机制序列化一个对象 并
  • Joshua Bloch 的构建器设计模式有何改进?

    早在 2007 年 我就读过一篇关于 Joshua Blochs 所采用的 构建器模式 的文章 以及如何修改它以改善构造函数和 setter 的过度使用 特别是当对象具有大量属性 其中大部分属性是可选的 时 本文对此设计模式进行了简要总结
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • Lombok 不适用于 Eclipse Neon

    我下载了lombok jar lombok 1 16 14 jar 并将其放入我的下载中 然后我点击这个 jar 执行正确地识别了我的 MacOS 上的 Eclipse 实例 然后我选择了我想要的实例 Lombok也在pom xml中指定
  • 使用 Apache 允许 Glassfish 和 PHP 在同一服务器中协同工作

    是否可以建立从 Java 到 php 文件的桥梁 我有一个用 Java 编写的应用程序 我需要执行http piwik org http piwik org 这是用 PHP 编写的 在服务器中 我正在运行 PHP 但无法从浏览器访问 php
  • 确定 JavaFX 中是否消耗了事件

    我正在尝试使用 JavaFX 中的事件处理来做一些非滑雪道的事情 我需要能够确定手动触发事件后是否已消耗该事件 在以下示例中 正确接收了合成鼠标事件 但调用 Consumer 不会更新该事件 我对此进行了调试 发现 JavaFX 实际上创建
  • 检测到 JVM 正在关闭

    我有一个使用 addShutdownHook 处理 Ctrl C 的 Swing 应用程序 它工作正常 直到我的关闭任务之一调用一个在正常情况下更改 JLabel 文本的函数 此时它挂起 我认为问题是 Swing EDT 已终止或正在等待某
  • 设置 TreeSet 的大小

    有没有办法像数组一样对 Java 集合中的 TreeSet 进行大小限制 例如我们在数组中 anArray new int 10 数组具有固定长度 在创建数组时必须指定该长度 A TreeSet当您向其中添加元素时会自动增长 您无法设置其大

随机推荐

  • 将 openCV 矩阵转换为向量

    看起来很容易 毕竟我们知道 std 或 openCV 向量可以轻松转换为矩阵 如下所示 vector
  • BlazeDS 与 GraniteDS [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 pandas 中创建具有动态名称的新数据框并添加新列

    我有一个数据框 df df pd DataFrame A a 1 a B a np nan c ID 1 2 2 t pd tslib Timestamp now pd tslib Timestamp now np nan 添加了新列 df
  • 将接口转换为结构体

    type SipField interface Info id name defaultValue string length int type Field string func f Field Get string return str
  • gzipstream.copyto .net 3.5 中的替代且简单的方法

    你好 在 net 4的这段代码中我使用了gzipstream的copyto方法 System IO MemoryStream ms new System IO MemoryStream byteArray GZipStream Decomp
  • 创建 XML 文档的最佳 .net 方法

    我试图找出编写 XML 文档的最佳方法 下面是我尝试根据从 ERP 系统中提取的数据创建的简单示例 我读过有关 XMLWriter 的内容 但我想看看是否还有其他更好的方法 任何建议将不胜感激 XML 示例
  • 为什么我的 .git 文件很大?

    我不小心在 git 目录中添加并提交了一些非常大 100MB 的 PSD 文件 当这些文件位于目录中时 我对它们进行了一系列编辑 但后来意识到它们不应该在那里 并将它们从目录中删除 然后我跑了 git add all git commit
  • 从现有数组创建新结果

    如果我有一个如下所示的示例数据 我需要从结果数组中获取 FinalResult 数组 let result type Science link www educatorsector com type Sports News link www
  • 当数据库更新时,WTForms 中的选择验证不会更新

    我明白了SelectFieldWTForms 中的方法采用 can 参数choices其形式为 choices value1 display of value 1 value2 display of value 2 我需要根据对数据库的调用
  • 未定义不是对象(评估“React.PropTypes.Number”)错误

    刚刚更新自expo 21 0 0 to 22 0 0我收到此错误 这是我的 package json name APP version 0 1 0 private true devDependencies react native scri
  • 无法在内部存储中找到保存到文本文件的数据,如何在内部存储android studio中保存文件?

    我想在我的 Android 手机上创建一个文本文件并在其中写入一些文本 当我点击按钮时 它说saved to data user 0 com example savetotextfile files example txt 但我找不到这些文
  • Python“str”对象没有属性“read”

    Python 3 3 2 导入 json 和 urllib request Json link www google com orderid 100000222 link www google com orderid 100000222 l
  • 将 SSIM 损失函数与 Keras 结合使用

    我需要使用 Sewar 的 SSIM 作为损失函数 以便比较我的模型的图像 当我尝试编译模型时出现错误 我导入该函数并编译模型 如下所示 from sewar full ref import ssim model compile ssim
  • 滚动平均 pandas DataFrame 的所有值

    我有一个 pandas DataFrame 我想在滚动的基础上计算所有值的平均值 对于所有列 对于滚动窗口中的所有观察值 我有一个带循环的解决方案 但感觉效率很低 请注意 我可以有NaNs在我的数据中 因此计算总和并除以窗口的形状并不安全
  • 将升级锁排除在 N3568 提案之外的原因是什么

    我对此进行了一些谷歌搜索 但只找到了很少的信息 N3568 http www open std org jtc1 sc22 wg21 docs papers 2013 n3568 html Wording包括升级锁概念的规范 但升级部件当时
  • groovy 中具有默认值的命名参数

    是否可以在 groovy 中使用具有默认值的命名参数 我的计划是创建一种对象工厂 可以在没有任何参数的情况下调用它 以获得具有默认值的对象 另外 我需要显式设置对象的任何参数的功能 例如 我相信这可以通过 Python 关键字参数实现 我现
  • Java 相当于 C# 中带有 @ 的逐字字符串

    快问 Java 中是否存在应用于字符串的 等效项 例如我可以做 c afolder afile 在 C 中 让它在处理时忽略转义字符 而不必这样做 c afolder aFile Java 有等效的吗 嗯 stackoverflow 正在逃
  • 清单合并失败:属性 application@appComponentFactory

    一切都很好 但我正在尝试添加这个库https github com wdullaer MaterialDateTimePicker https github com wdullaer MaterialDateTimePicker有了这个 i
  • 增加字符串的最后一个字母

    这是我希望 Java 的 String 类有一个 ReplaceLast 方法的地方 但它没有 而且我的代码得到了错误的结果 我正在编写一个程序 该程序在数据结构中搜索与字符串前缀匹配的任何项目 但是 由于我使用的是迭代器 iter nex
  • Spring部署期间依赖注入问题

    我正在启动一个 Primefaces Spring Hibernate 项目 并且仍在学习如何正确处理这些组件 但就在此时 我面临着一个与 spring 依赖注入相关的问题 这让我很害怕 我已经在网上寻找答案两天了 但找不到我的代码有什么问