2016-02-24 20 views
6

Bir projede veri erişimi olan ve bunu başka bir projede spring kavanoz olarak kullanan bir projem var. gradle maven-publish eklentisini kullanarak jar yarattım. Ben Repository kullanılıyor buSpring - Diğer Jar deposu sıfırdır. Nasıl başlatılır?

@ContextConfiguration(locations = {"classpath*:spring-config.xml"}) 
@Transactional 
public class TenantProvisioningManagerTest extends AbstractTestNGSpringContextTests {} 

Sınıf gibi benim diğer proje testi durumunda bu Jar başlatıldı. Bu

public class TenantProvisioningManager { 

    private static final Logger logger = LogManager.getLogger(TenantProvisioningManager.class); 

    @Autowired 
    TProductRepository tProductRepository; 
} 

Repository gibi kullanılan Burada null olduğunu. Bu ayrı projedeki diğer kavanozlardan depo nasıl başlatılır?

spring-config.xml

: TenantProvisioningManager ayrı projede ise

<?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:context="http://www.springframework.org/schema/context" 
     xmlns:jpa="http://www.springframework.org/schema/data/jpa" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans.xsd 
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx.xsd 
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context.xsd 
       http://www.springframework.org/schema/data/jpa 
       http://www.springframework.org/schema/data/jpa/spring-jpa.xsd 
       "> 
<context:property-placeholder 
     location="file://#{systemEnvironment['GRADLE_USER_HOME']}/gradle.properties"/> 
<!-- the base package for spring data jpa repository interfaces --> 
<jpa:repositories base-package="com.asklytics.dao.repos" /> 

<!-- Enable the component scan (auto wiring etc) for the following package --> 
<context:component-scan base-package="com.asklytics" /> 

<!-- Make sure the following is specified to enable transaction --> 
<tx:annotation-driven /> 
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 

<!-- This defines the entity manager factory with some custom properties --> 
<bean id='entityManagerFactory' class='org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean'> 
    <property name="persistenceUnitName" value="persitanceUnit"/> 
    <property name='dataSource' ref='dataSource' /> 
</bean> 

<bean id='dataSource' class='org.springframework.jdbc.datasource.DriverManagerDataSource'> 
    <property name='driverClassName' value='com.mysql.jdbc.Driver' /> 
    <property name='url' value="${awsCamelDbUrl}" /> 
    <property name='username' value="${awsCamelDbUsername}" /> 
    <property name='password' value="${awsCamelDbPassword}" /> 
</bean> 

spring-config.xml ve TProductRepository diğer projede bulunmaktadır.

+0

Sınıf yolunda spring-data-jpa'nız var mı ve ilkbahar yapılandırmanız bu depoların bulunduğu paketi mi tarıyor? Ayrıca, 'NoSuchBeanDefinitionException'ı atmak yerine' null' olması gerçeği muhtemelen 'TenantProvisioningManager'ınızın Spring tarafından yönetilmediği anlamına gelir, bu nedenle otomatik aramanız bozulur. – nbrooks

+0

Evet, spring-data-jpa sınıf yolunda. Paketi taramak için nasıl onaylayabilirim? “TenantProvisioningManager” ın Spring tarafından yönetilmesini nasıl sağlayabilirim? –

+0

"spring-config.xml" içeriğini kaydedin. Ayrıca, hangi paketleri 'TenantProvisioningManager' ve' TProductRepository' içinde? – manish

cevap

2

TenantProvisioningManager'un da bahar tarafından yönetildiğinden emin olun. Annotate, @Component

İlgili konular