2016-07-15 5 views
0

Ich habe eine Klasse TestServiceImpl, die mit @Service und @EnabledTransactionManagement Annotation markiert ist. Ich verweise 2 DAO-Objekte darin @Autowired Service1DAO s1 und @Autowired Service2DAO s2. Die Klassen Service1DAO und Service2DAO sind mit @Repository Annotation versehen. Die Methoden werden mit @Trasanction und erforderlichen Parametern je nach Anforderung gekennzeichnet.Autowired ist Null im Frühjahr

Die questio ist: Ich bin in der Lage s1 Objekt zu bekommen, aber wenn ich das s2 Objekt zu bekommen versuchen, es zeigt mir null. Sie sind nacheinander definiert.

Die serivie Klasse:

@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-Klassen sind:

@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(); 
    } 
} 

Die xml enthält die Komponente Scan pakcage erwähnt.

+0

Die Methoden in der Serviceklasse sind mit @Trasanction gekennzeichnet. – Atul

+0

Fügen Sie bitte den Code – reos

+0

hinzu Wann und wie versuchen Sie, auf das Objekt s2 zuzugreifen? Ist es von einem Controller oder erstellen Sie ein Objekt? Kannst du uns wissen lassen, wie geht es dir? –

Antwort

0

Ok ... Der Fehler wurde behoben.

Das Service-Klasse-Objekt, das im Controller mit new() erstellt wurde, und ich suchte die Service- und Dao-Klassen. Es war ein Fehler im Zusammenhang mit der Code-Implementierung, selbst wenn Spring verwendet wird, folgen Sie immer noch dem Pfad von Java, um ein Objekt zu erstellen.