zoukankan      html  css  js  c++  java
  • springboot第一篇:springboot基础

    springboot的核心:约定优于配置。

    搭建一个springboot项目非常简单。直接File->new->Spring Initializer,一步步往下走即可。

    启动日志:

    在IDE中启动应用,除了可以点击Run或者Debug按钮外,还可以在IDE的终端中输入mvn spring-boot:run。

    热部署

    热部署需要引用spring-boot-devtools组件,配置参考https://gitbook.cn/gitchat/column/5b86228ce15aa17d68b5b55a/topic/5bab5a670110e7701d268e21

    在项目中如何获取application.properties文件中的配置项值呢,比如在配置文件中有server.port=10000

    有三种方式可以获取到配置文件的值:

    1、用@Value注解加美元符号$,如下

    @Value是spring-beans.jar中的注解,实际是由BeanPostProcessor处理的。BeanPostProcessor是一个接口,也在spring-beans.jar中。注意,如果取一个不存在的key的值,会抛IllegalArgumentException,提示Could not resolve placeholder,导致应用起不来。

    2、用Environment,是个接口,全类名是org.springframework.core.env.Environment,在spring-core.jar中。直接在类中注入Environment实例即可,如下,

    在方法中,调用Environment实例的getProperty方法,如environment.getProperty("server.port")。Environment接口继承了PropertyResolver接口,PropertyResolver有getProperty方法的多个重载。当获取不存在的key对应的值时,会获取到null,我们也可以为此key设置默认值,而不会像@Value一样,导致应用起不来。Environment一般是StandardServletEnvironment类型。

    3、用@PropertySource注解和@ConfigurationProperties注解。其中@PropertySource注解是spring-context.jar提供的,用于指定配置文件名称,@ConfigurationProperties注解是spring-boot.jar提供的,用于指定key的前缀。这种情况适用于,我们想把不同用途的配置项放到不同的配置文件中,例如数据库相关的配置放到db.properties中,redis相关的放到redis.properties中,hbase相关的放到hbase.properties中,es相关的放到es.properties中。我们需要建一个实体类,把配置项值映射到该类属性中,如下

    在DbConfig类中,用@PropertySource注解指定了从db.properties文件中读取配置项值,用@ConfigurationProperties指定了读取db前缀的key的值。这样就会把db.properties文件中db.host的值映射到host属性中,其他属性也一样。这样,在别的类中注入DbConfig实例,就可以用DbConfig实例的各种属性了。如下

    db.properties文件内容如下

    db.host=127.0.0.1
    db.port=3306
    db.user=root
    db.password=mysql3306

  • 相关阅读:
    程序员的自我修养---------一个程序员应该懂点什么
    Duilib的圆环形 进度条 实现(网易云信版本)
    位定义,用于判断是否包含某属性
    Duilib的圆角矩形 抗锯齿优化 弥补RoundRect不足(网易云信borderround版本)
    exe、msi、dos、bat等静默运行,后台运行,不弹窗的解决办法
    删除桌面上有文件但提示项目不存在的方法
    MyBatis插入语句返回主键值
    django学习之Model(二)
    TCP三四次握手
    django学习之Model(一)
  • 原文地址:https://www.cnblogs.com/koushr/p/6004888.html
Copyright © 2011-2022 走看看