2015-01-27 28 views
5

Tôi có xml này cấu hìnhĐăng ký đậu groovy vào mùa xuân java cấu hình

<?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:lang="http://www.springframework.org/schema/lang" 
    xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd"> 

    <lang:groovy id="foo" script-source="${groovyBeanLocation}"/> 
</beans> 

tôi nhập khẩu cấu hình này trong ApplicationConfig của tôi, nhưng không muốn kết hợp một số loại cấu hình (java và xml).

Tôi làm cách nào để tạo cấu hình cho trước bằng java?

+2

Chưa có lựa chọn nào. Xem https://jira.spring.io/browse/SPR-12300 và câu hỏi SO liên kết của nó. –

+0

@ArtemBilan Tôi đã tìm thấy [GroovyScriptFactory] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scripting/groovy/GroovyScriptFactory.html) và [ScriptFactoryPostProcessor] (http: // docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scripting/support/ScriptFactoryPostProcessor.html), nhưng chưa tìm ra. Giải pháp chính xác là. –

+1

Vâng, đó là sự thật. Nhưng cách đó không đơn giản như vậy đối với ứng dụng cuối cùng. Có thể tốt hơn là chỉ sử dụng '@ImportResource (" classpath: scriptsContext.xml ")' ngay bây giờ. –

Trả lời

1

Nếu bạn đang sử dụng lớp Groovy làm bean Spring, bạn không cần thẻ < lang: groovy>. Chỉ cần triển khai lớp đã biên dịch của bạn như thể nó là Java, và nó chỉ hoạt động miễn là bạn bao gồm tệp jar groovy-all như là một phụ thuộc dự án.

Thẻ < lang: groovy> với nguồn tập lệnh là dành cho hạt "có thể làm mới". Đó là nơi bạn triển khai mã nguồn (thay vì phiên bản đã biên dịch) và Spring phát hiện các thay đổi và biên dịch lại cho bạn. Đó là cách bạn có thể cập nhật mã trong một ứng dụng đang chạy, điều đó thật tuyệt nhưng khá hiếm. Nếu tất cả những gì bạn muốn làm là viết các lớp triển khai của bạn trong Groovy, hãy biên dịch chúng như bình thường và thêm chúng vào các tệp JavaConfig theo cách bạn sẽ làm với bất kỳ bean nào khác. Đó là tất cả bytecodes đến Spring.

Các vấn đề liên quan