SpringBoot2-5

先解决一个问题【报错1】java: 无效的目标发行版: 17

修改位置:maven的配置需要改为选取本地maven所在目录(这些都是java指定了1.8比较低但是又都用的版本导致)

再解决一个问题【报错2】

java: 无法访问org.springframework.boot.SpringApplication
  错误的类文件: /D:/apache-maven-3.8.6/maven-repo/org/springframework/boot/spring-boot/3.0.1/spring-boot-3.0.1.jar!/org/springframework/boot/SpringApplication.class
    类文件具有错误的版本 61.0, 应为 52.0
    请删除该文件或确保该文件位于正确的类路径子目录中。

这个错误应该是spring boot版本过高导致

基于

重新建立一个spring boot 项目,版本应该小于3,亲测有效

第三个问题

    Spring Boot Configuration Annotation  Processor not  configured

在帮助文档

    Spring Boot Reference Documentation

中找到

    

     3.1. Configuring the Annotation Processor

 pom引入依赖,Maven刷新

   

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

同时确保build时不用build上面的这个Processor

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-configuration-processor</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

以下提示代表需要重新启动项目 Re-Run Spring Boot Configuration Annotation

 

注意: make sure that the lombok dependency is defined before the spring-boot-configuration-processor dependency.  去报lombok依赖定义要在上面的依赖前面

用Maven Clean&Package

复制打包文件到本地

 打开,看上去无论写不写exclude里面都没有pring-boot-configuration-processor

 这个或许是默认不打包吧

   

 

YAML

    适用于以数据为中心的配置

  语法:  Key: value  有一个空格

              大小写敏感

             使用缩进表示层级关系

             缩进不建议用tab,只用空格

              缩进空格数不重要,只要相同层级的元素左对齐即可

             字符串无需加引号

            # 注释  ‘’  “”表示其他意义

 数据类型

     字面量   date boolean  string  number null

       对象:键值对集合  map hash set  object

               k: 行内写法{k1:v1,k2:v2,k3:v3}或者

                k:

                   k1:v1

   数组  array list queue

             行内写法    k: [v1,v2,v3]

或     k:

           -  v1

          -   v2   用一个横杠代表一个元素

使用YAML

创建文件,可以写成yml或者yaml

 properties和yml都会生效,前者优先

如下,使用@Component使该类bean加入容器中

使用@ConfigurationProperties(prefix = "person")与上图两个配置文件前缀为person的属性绑定

@ConfigurationProperties(prefix = "person")
@Component
@ToString
@Data
public class Person {
    private  String userName;
    private  Boolean boss;
    private Date birth;
    private Integer age;
    private Pet pet;
    private String[] interests;
    private List[] animal;
    private Map<String,Object> Score;
    private Set<Double> salarys;
    private Map<String,List<Pet>> allPets;



}

编写配置文件:字符串也可以用单引号或双引号标记

                     但是如果里面有\n   在作为json输出到页面上差别不大,但是如果在controller里面输出对象属性,就会有以下差别

                                                   单引号会改变它的行为,就是作为普通字符串输出

                                                    双引号则 尊重\n换行的行为,原样输出

userName这种驼峰也可以写成user-name也是有效的
person:
  userName: 李白
  boss: true
  birth: 2011/11/22
  age: 18
  #interests: [篮球,足球]
  interests:                  #list
    - 篮球
    - 足球
    - 乒乓球
  animal: [猫,狗]
#  Score:
#    english: 80
#    math: 90
  Score: {English: 80,Math: 90} #map {}内不必有空格,为json写法
  salarys:
    - 998
    - 777
  pet:
     name: 阿花
     weight: 98.77
  allPets:
    sick:
      - {name: 阿飞,weight: 78.7}   #第1种对象表示法
      - {name: 阿歪,weight: 65.3}
      - name: 阿园    #第二种对象表示法  -代表一个元素
        weight: 99
    health:
      - {name: 阿花,weight: 18.7}
      - {name: 阿斗,weight: 38.3}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值