首页 > 编程知识 正文

spring配置文件详解(springboot引入xml)

时间:2023-05-06 20:31:24 阅读:72507 作者:3120

在背景Spring框架中,@ResponseBody注释响应的对象使用HttpMessageConverter类根据produces属性指定的类型找到相应的数据转换器并完成转换

最常见和默认的响应类型是application/json,其中许多其他响应数据类型封装在org.spring framework.http.media type中。 本文介绍了应用程序/XML类型的响应支持以及由此引起的思考。

定义支持应用程序XML并将响应类型设置为XML的请求方法。

@ response body @ request mapping (value='/hello/JSON ' ) public MyData hello () {returnnewmydata、' 130200045218 } @ XML ',produces=media type.application _ XML _ value ) publicmydide }关键配置取决于部署

ependencygroupidcom.faster XML.MTD DH.data format/groupidartifactidmtddh-data format-XML/artifactidversion2.9. 0

例外类型包括:

org.spring framework.web.httpmediatypenotacceptableexception : couldnotfindacceptablerepresentation加入依赖关系后,页面显示为XML数据

如果长期考虑两个知识点框架,可能会忘记底层封装过程。 本文中的这些简单练习要求在SpringBoot中重新配置mappingdtdpj2httpmessageconverter以解决特殊转换问题,并重新配置mappingdtdpj2xmlhttpmesster以进行XML类型的特殊转换

考虑两个问题:

406是什么原因? 此参考包如何自动将XML转换器添加到Spring环境中? 第一个问题很容易猜测。 当请求将响应数据的格式指定为application/xml时,org.spring framework.web.servlet.MVC.method.annotation.requestresponsebebation 没有找到转换器。

第二个问题是,SpringBoot会自动组装dtdpj转换器。 它通过dtdpjhttpmessageconvertersconfiguration类完成,并注入到JSON转换器mappingdtdpj2httpmessageconverter和XML转换器中,其源代码如下

@ org.spring framework.context.annotation.configuration classdtdpjhttpmessageconvertersconfiguration { dtdpjhttpmessagecagecoration @ org.spring framework.context.annotation.configuration @ org.spring framework.boot.auto configure.condition.con @ org.spring framework.boot.auto configure.condition.conditionalonbean ({ org.spring framework.http.converter ) protectedstaticclassmappingdtdpj2xmlhttpmessageconverterconfiguration { protectedmappingdtdpj2xmlhttpmessageconverterconfiguration 2 xmlhttpmessageconverterconfiguration compiled code */} @ org.spring framework.context.annotation.bean @ org.spring framework.boot.auto configure.condition.conditional econvertermappingdtdpj2xmlhttpmessageconverter (org.spring framework.http lder builder ) {/*编译代码*/} @ org.spring framework.context.annotation.configuration @ org.spring framework.boot.auto configure.condition.con @ org.spring framework.boot.auto configure.condition.conditionalonbean (com.fasterxaster @ org.spring framework.) perty (name={ ' spring.http.converters.PP erty having value=' MTD DH ', 匹配=true ) protectedstaticclassmappingdtdpj2httpmessageconverterconfiguration { protectedmappingdtdpj2httpmessagegegecont 完成代码*/} @ org.spring framework.context.annotation.bean @ org.spring framework.boot.auto configure.condition.conditional econverter.class},ignored type={ ' org.spring framework.hate OAS.MVC.typeconstrainedmappingdtdpj2httpmessageconverver ' org.spring framework.data.rest.web MVC.Alps.alpsjsonhttpmessageconverter ' } ) publicorg.spring framework.http.converter.JSON.mappingdtdpj2httpmessageconvertermappingdtdpj2httpmessageconverter (mon /}}http://www.Sina.com/XML转换器的自动注入条件为: @ org.spring framework.boot.auto configure.condition.conditionalonclass ()

此条件注入还导致了第三个问题,如果不部署jar包,则此配置中存在编译错误。 怎么解决这个编译错误?

搜索《注解@ConditionalOnClass(X.class),X不存在时的探究》,原理相似。

同样,虽然spring-boot引用了此包,但依赖关系不会传播到我们的项目中,因为选项=true。 如果希望在不部署相关jar的情况下使用@ConditionOnClass,请使用name属性。

@ conditionalonclass (name=' com.faster XML.MTD DH.data format.XML.XML mapper ' )启示以上是基于dtdpj转换器的思考。

如何更改mappingdtdpj2httpmessageconverter的默认配置? 如果@ConditionalOnClass没有部署相应的jar包,编译错误会发生什么? SpringBoot如何自动组装dtdpj的两个转换器? 读了正文,知道发生了什么吗?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。