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.
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
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? –
"spring-config.xml" içeriğini kaydedin. Ayrıca, hangi paketleri 'TenantProvisioningManager' ve' TProductRepository' içinde? – manish