私はSpring 3.1.0.M2を使用しています。いくつかのデータベース機能をテストするJUnit 4のテストを書いていますが、データソースの配線に問題があります。私のJUnitクラスでは、私は...Spring:Junitテストでデータソースを配線するのに問題があります
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=AnnotationConfigContextLoader.class,
classes={DataSource.class, WebLeadsDAOImpl.class})
public class TestDB {
...
@Qualifier("mycoSessionFactory")
private SessionFactory sessionFactory;
/**
* Using a single lead lookup should speed up our testing queries.
* <p>
* The lead is is 8104051
* </p>
*/
@Before
public void prep() {
assertNotNull(sessionFactory);
...
}
ですが、 "sessionFactory"オブジェクトは繰り返しnullです。私は2つのSessionFactory豆を持っているので、ここで
@Lazy
@Component
@PropertySource("classpath:oracle.properties")
public class DataSource {
…
@Bean(name="mycoSessionFactory")
public SessionFactory sessionFactory() throws Exception {
final SessionFactory sessionFactory = new AnnotationSessionFactoryBuilder()
.setDataSource(dataSource())
.setHibernateProperties(databaseProperties())
.setPackagesToScan("com.criticalmass.systems.leadsmonitor.domain")
.setSchemaUpdate(false)
.buildSessionFactory();
return sessionFactory;
}
...私はそれを設定しようとしている方法です、私はちょうど「@Autowired」を使用していない理由があります。私のデータソースが正しく配線されない理由は何ですか?ありがとう、 - Dave
私の応答を編集して、自分のJUnitクラスが適切なクラスを指す "@ContextConfiguration"注釈を既に持っていることを示しました。実際、上記のSessionFactory Bean生成メソッドが呼び出されていることを、ログを介して確認しました。他のアイデア? – Dave
@Dave:私の変更された答えを見てください – Ralph