当前位置: 首页 > news >正文

SpringBoot中yaml配置文件中文字符异常以及将多个独立的IDEA项目整合到一个项目里当做模块的处理

一、SpringBoot中yaml配置文件中文字符异常

        在使用 SpringBoot 中 yaml 配置注入实体类中时,怎么注入都不成功,注入类的数据 yaml 如下。

schools:name: kermitgrades: 7students: 2050address: "中国北京"

        报错如下:

java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@3a7704c testClass = com.kermit.Springboot01ApplicationTests, locations = [], classes = [com.kermit.Springboot01Application], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@389c4eb1, org.springframework.boot.test.context.SpringBootTestAnnotation@c7309dd6], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
    at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:215)
    at org.yaml.snakeyaml.reader.StreamReader.ensureEnoughData(StreamReader.java:173)
    ... 17 more
Caused by: java.nio.charset.MalformedInputException: Input length = 1
    at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:279)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:384)
    ... 67 more

        检查所有地方都没有问题,最后尝试简化注入的数据,发现name字段可注入,随后便怀疑是中文字符串的问题,果然发现就是 address 字段内容为中文导致。进行了多处设置包括各地方编码 设置如下,但都未成功。

        最后在操作了两个地方,一是在路径下方新增加了 resources 目录,另外就是 application.xml 中的中文字符删除后重新输入的。然后才能正常加载,如有碰到相同问题的可以参考看看。

二、 将多个独立的IDEA项目整合到一个项目里当做模块的处理

        之前在进行 Spring/Mybatis/SSM整合的时候,每次都是新建了一个项目进行开发维护,后来发现项目之间切换回来是真麻烦,于是想把这些都集中在一个项目里同时进行重新命名以方便进行管理,摸索了一下,整合起来也非常方便。如下图所示:

操作的过程如下:

  1. 新建项目。建一个新的空项目,注意版本和原独立项目间的关系,我这里所有的项目都使用的是java 21版本。
  2. 在当前项目下建议模块如ssm-01-mybatis。将原来独立项目的程序目录 src 复制并在IDEA中直接粘贴覆盖新的项目。
  3. 将原项目中的 pom.xml 文件复制粘贴到模块  ssm-01-mybatis 中的 pom.xml 文件并覆盖。

        按上面这三步操作,即可将原项目当做当前主项目的一个模块运行,如果追求完美,修改一下 pom.xml中的 <artifactId>mybatis-01</artifactId>  artifactId名称,保持和当前的子模块名称一致。

        对于 SpringMVC 项目,处理的时候增加了一个WEB支持的步骤,然后单独将WEB目录程序代码复制过来即可。并重新配置了一下 tomcat 目录。截图如下:

        这不是一个什么大的技术点,只是实践处理过程中的一点小笔记。留个记录布局。 


http://www.mrgr.cn/news/59590.html

相关文章:

  • 4.1.3 网站通信技术
  • 【Windows】PSTools PsExec 报错 Error creating key file on xxx: 找不到网络名。
  • C++ string类常用接口总结
  • 【LLaMA-Factory】【Windows】:在windows操作系统配置大模型微调框架LLaMA-Factory
  • LeetCode392:判断子序列
  • 山西农业大学20241025
  • visual studio断点无法命中
  • 【学术论文投稿】Windows11开发指南:打造卓越应用的必备攻略
  • Oracle 第7章:数据完整性约束
  • 10月27日
  • 【前端面试】Typescript
  • 【遗传算法】基于遗传模拟退火算法的风电功率聚类分析
  • springboot094基于web的酒店客房管理系统(论文+源码)_kaic
  • 利用编程思维做题之计算二叉树最大宽度
  • 《战场车辆及部件损毁识别与评估的神经网络新路径》
  • MirrorMaker2配置后同步数据至目标集群的topic都加上一个源集群别名的前缀A.
  • C++从入门到起飞之——红黑树封装map和set 全方位剖析!
  • 冥冥中有定数,一个可能的趋势转换,数据分析,玄学
  • 基于Springboot+Vue的企业绩效考核管理系统 (含源码数据库)
  • 获取大麦网关键词列表数据接口技术贴
  • NumPy 数组合并与修改示例解析
  • 面包种类图像分割系统:多层面改进
  • DC-2靶机通关详解以及可能问题的解决
  • [论文阅读] Improved Baselines with Visual Instruction Tuning
  • 利士策分享,职场进阶:2-3年,如何让自己更上一层楼
  • 卷积神经网络:卷积层,池化层,全连接层