Spring MVC 3.1 có tương thích với Jackson 2.0 không? Việc phát hiện tự động Jackson MVC của Spring MVC trên đường dẫn lớp và việc ủy quyền cho Jackson đối với các yêu cầu với một kiểu nội dung JSON vẫn hoạt động?Jackson 2.0 với Spring 3.1
Trả lời
Hỗ trợ cho Jackson 2 đã được thêm vào mùa xuân 3.2, và cũng đã backported để mùa xuân 3.1.2 (SPR-9507)
Bạn sẽ cần thay đổi tệp pom.xml nếu bạn di chuyển từ 1.x ('Bước 1: Cập nhật phụ thuộc Maven/JAR' từ http://www.cowtowncoder.com/blog/archives/2012/04/ entry_469.html là tất cả những gì bạn cần cho sự hỗ trợ dựng sẵn để chốt lại) – Manav
Keith Donald (nguồn gốc lò xo) đã tweet lại một lúc sau.
Hỗ trợ MVC mùa xuân cho Jackson 2; cũng làm việc với Jackson mẹ đẻ "in khá" tính năng https://gist.github.com/2423129
Tôi đã không cố gắng MappingJackson2HttpMessageConverter
tìm thấy trong các ý chính trên nhưng nó sẽ ngạc nhiên nếu nó không làm việc.
Để được rõ ràng, Spring 3.1 không có hỗ trợ bản địa cho Jackson 2. Đó là trong mùa xuân 3,2
Điều này đã được thêm vào trong 3.1.2. –
Đối với mùa xuân 3.1.2 và Jackson 2 -
Như đã nêu ở trên, JustWorks hỗ trợ tự động ™
nhưng cấu hình thì không, vì hầu hết các trang web đều có sẵn các cấu hình cấu hình trước Spring3/Jackson2
Vì vậy, với hậu thế, tôi sẽ liệt kê một hack (? hoặc đây là cách chính thức) để định cấu hình trình chuyển đổi Jackson. Trong trường hợp đặc biệt này, tôi đang cấu hình bộ chuyển đổi để trở lại ngày tháng trong định dạng ISO-8601:
package foo.bar.JacksonConfig;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.stereotype.Component;
@Component
public class JacksonConfig implements BeanPostProcessor {
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName)
throws BeansException {
if (bean instanceof MappingJackson2HttpMessageConverter) {
MappingJackson2HttpMessageConverter jsonConverter =
(MappingJackson2HttpMessageConverter) bean;
ObjectMapper objectMapper = jsonConverter.getObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
jsonConverter.setObjectMapper(objectMapper);
}
return bean;
}
}
Tôi chắc chắn rằng đây không phải là cách chính thức nhưng nó rất thông minh! –
Phương thức cấu hình chính thức "chính thức" được mô tả ở đây: http: //wallsofchange.wordpress.com/2013/02/02/spring-mvc-nghỉ-dịch vụ-lực-jackson-to-serialize-ngày-as-iso-8601-ngày /. Sự khác biệt duy nhất cho Jackson 2 là bạn phải sử dụng 'MappingJackson2HttpMessageConverter' thay vì' MappingJacksonHttpMessageConverter' và 'SerializationFeature.WRITE_DATES_AS_TIMESTAMPS' thay vì' SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS'. –
@ Ryan công trình này tuyệt vời – oers
Kể từ mùa xuân 3.1.2 bạn chỉ cần có để thêm jackson-DataBind jar vào classpath của bạn.
Trong Maven bạn có thể cấu hình nó như thế này:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
Phần còn lại của sự kỳ diệu sẽ được thực hiện vào mùa xuân tự động.
Xem: http://norrisshelton.wordpress.com/2012/07/15/spring-3-mvc-with-json-via-jackson-2-0/
Man, tôi đã phát điên cho đến khi tôi tìm thấy điều này. Rất cảm ơn! –
Tôi không kiểm tra Spring MVC 3.1 tương thích với Jackson 2.0. Nhưng tôi gặp phải vấn đề tương thích 3.0.5. Cuối cùng tôi thấy Spring MVC 3.0.5 chỉ tương thích với Jackson 1.0.0, chắc chắn Jackson 1.5.3 không tương thích !!!
- 1. Tôi chỉ định cài đặt Jackson SerializationConfig ở đâu trong Spring 3.1
- 2. spring 3.1 @Cacheable example
- 3. Chú thích Jackson bị bỏ qua trong Spring
- 4. Định cấu hình JDO trong Spring 3.1?
- 5. Tích hợp GWT 2.0 với Spring Security 3.0
- 6. Lấy kết quả đầu ra của Spring 3.1 MVC View
- 7. Cách ghi đè Spring 3.1 @PropertySource để đặt IgnoreResourceNotFound & IgnoreUnresolvablePlaceholders
- 8. Nâng cấp lên Jackson 2.0 từ 1,9 ở Jersey không hoạt động
- 9. Tại sao thử nghiệm đơn vị với Spring 3.1 WebMvcConfig không thành công?
- 10. Sử dụng tệp persistence.xml riêng biệt để sản xuất và thử nghiệm với Spring 3.1
- 11. Jackson tương đương với iPhone?
- 12. python 3.1 với pydev
- 13. Lồng ghép khung chơi 2.0 và khung công tác Spring
- 14. Mùa xuân 3.1 Định dạng ngày JSON
- 15. RestTemplate + Jackson
- 16. Không thể bật hỗ trợ ràng buộc JSON dựa trên POJO cho Jackson ở Jersey 2.0
- 17. Spring 3 JSON với MVC
- 18. Issue với glBindBufferRange() OpenGL 3.1
- 19. Spring MVC và JSON, lớp học không tìm thấy ngoại lệ của Jackson
- 20. Jackson ObjectMapper với mã hóa UTF-8?
- 21. Jackson - Json để POJO Với Nhiều Entries
- 22. bãi đối tượng String với Jackson
- 23. Deserializing một loại chung với Jackson
- 24. Xuân @ResponseBody Jackson JsonSerializer với JodaTime
- 25. HibernateInterceptor với mùa xuân 3.1 và hibernate 4.01
- 26. Mùa xuân 3.1 MVC, Bảo mật mùa xuân 3.1 - Mã thông báo CSRF
- 27. SAML với .NET 2.0
- 28. NServiceBus với Unity 2.0?
- 29. Spring-MVC 3.1: Cách ánh xạ URL bằng dấu gạch chéo?
- 30. Cách định cấu hình đúng thẻ http trong Spring Security 3.1?
Tại sao họ không? Bạn đã thử và quan sát thấy nó không hoạt động? –
http://stackoverflow.com/questions/10085088/jackson-annotations-being-ignored-in-spring –