私は@Service
と@EnabledTransactionManagement
というアノテーションが付けられたクラスTestServiceImpl
を持っています。 私はそれに2つのDAOオブジェクトを参照しています@Autowired Service1DAO s1
と@Autowired Service2DAO s2
。 Service1DAO
およびService2DAO
クラスには、@Repository
注釈が付いています。 このメソッドには、@Trasanction
と、要件に応じた必須パラメータが付いています。春にはAutowiredがnullです
クエストは: 私はs1
オブジェクトを取得することができますが、私はs2
オブジェクトを取得しようとしているときにそれは私がnullを表示しています。 これらは互いに定義されています。
serivieクラスがある:
@Service
@Scope("prototype")
@EnabledTransactionManagement
public class TestServiceImpl {
@Autowired Service1DAO s1;
@Autowired Service2DAO s2;
@Transation(readOnly = false, propogation = Propagation.REQUIRED_NEW)
public String getXXX1(){
s1.print();
}
@Trsanction(readOnly = false, propogation = Propagation.REQUIRED_NEW)`enter code here`
public String getXXX2(){
s2.write();
}
}
DAOクラスは次のとおり
@Repository
public class Service1DAO implements Service1{
@PersistentContext
EntityManager em;
public String Print(){
em.XXXXXX();
}
}
@Repository
public class Service2DAO implements Service2{
@PersistentContext
EntityManager em;
public String write(){
em.XXXXXX();
}
}
XMLが挙げコンポーネントスキャンpakcageを含んでいます。
サービスクラスのメソッドには@Trasanctionというアノテーションが付けられます。 – Atul
コードを追加してください – reos
いつ、どのようにs2オブジェクトにアクセスしようとしていますか?それはコントローラーか、オブジェクトを作成していますか?どのようにしているのか教えていただけますか? –