2013-07-31 19 views
6

Tôi có một câu hỏi đơn giản, Làm thế nào tôi có thể sử dụng spring @Autowired trên một constructor của lớp Scala này?@Autowired trên một constructor của một lớp Scala

class MessageMBeanExporter(messageDirectory: MessageDirectory) extends MBeanExporter with SmartLifecycle { 
     ..... 
} 

Trả lời

14

Tôi đã không thử nó, nhưng theo thisthis link, từ 2.8+ bạn có thể làm:

class MessageMBeanExporter @Autowired() (messageDirectory: MessageDirectory) extends MBeanExporter with SmartLifecycle { 
     ..... 
} 
+0

Cảm ơn rất nhiều, tôi sẽ kiểm tra nó, và nếu nó hoạt động tốt, tôi sẽ chấp nhận câu trả lời của bạn – Pooya

+0

ngọt, nhờ cho việc này. –

2

Tôi đã thêm hỗ trợ cho @Autowired vào constructor của một đối tượng Scala vào dự án spring-scala. Đây chỉ là (tại thời điểm viết) trong ảnh chụp nhanh hàng đêm.

này cho phép bạn làm

@Component 
@Autowired 
class Service(dep : Dependency) { } 

https://github.com/spring-projects/spring-scala

+0

Điều này không hiệu quả đối với tôi (scala 2.11), nhưng đặt '@Autowired()' giữa tên lớp và hàm tạo hiện .... 'class MyClazz @Autowired() (myBean: Bean) ...' –