springboot学习之一(搭建和配置文件)

1.搭建

springboot的搭建可以通过网页版,也可以通过idea.

常用的版本构件maven和gradle等

springboot的项目中pom.xml文件(有个父级依赖规定了大部分用到jar的版本),之后只需依赖名称即可.

 

2.配置文件

配置文件(优先级依次降低)

application.properties  (key=value键值对形式配置)

server.port=8080

application.yml

application.yaml

(后面两个是,依缩进的形式配置,冒号后面有空格,可以配置 值,数组对象等)

server:
  port: 8080

 

3.配置选项位置

自动配置路径,application.properties配置文件中为什么能修改配置的信息,

因为这些东西在spring-boot-autoconfigure的jar包中配置过了,我们可以找到的.

 

可以在jar包中找到‘META-INF\spring.fatories’文件中定义了很多自动配置类;可以根据在pom.xml文件中添加的启动器依赖自动配置组件

通过如下流程可以修改application配置文件(porperties或yml),改变自动配置的组件默认参数

 

 

 

4.获取配置文件值

要获取配置文件的值,有多种注解

1.用 @Value(“${name}”)可以把配置文件中值取出来

2.用下面方法可以把配置文件的值都注入进去

@Autowired
private Environment env;

env.getProperty("key");

3.@ConfigurationProperties实现Spring Boot配置文件配置项读取(对象中)和应用 (加个依赖spring-boot-configuration-processor)

 创建配置项类(jdbcProperties类),在改类名上添加注解@ConfigurationProperties,就可以把配置文件值读取到此类上.

package com.cc8w.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @ConfigurationProperties从application配置文件中读取配置项
 * prefix 表示配置项的前缀,配置了就不用写前缀了
 * 配置项类中的类变量必须要和前缀之后的配置项名称一致
 */

@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {

    private String driverClassName;
    private String url;
    private String username;
    private String password;

    public String getDriverClassName() {
        return driverClassName;
    }
    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

4.@Configuration:声明一个类作为配置类,代替xml文件

5.@Bean:声明在方法上,将方法的返回值加入Bean容器,代替<bean>标签

package com.cc8w.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;

@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {

    @Value("${jdbc.driverClassName}")
    private String driverClassName;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;

    @Bean
    public DataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }

}

 

6.多profile文件配置

application.properties
spring.profiles.action=dev


application-dev.properties
application-test.properties
application-pro.properties

 

 

 

 

外部配置文件加载顺序:(十几个位置) 

首先:可以通过参数配置指定路径的配置文件

其实:将来发布如果是jar包,要修改配置文件参数,把 application.properties 文件放在jar包同级目录.

 

 

https://www.cnblogs.com/fps2tao/p/13819644.html

https://www.cnblogs.com/fps2tao/p/13816185.html

https://www.cnblogs.com/fps2tao/p/13815927.html

 

posted @ 2023-04-11 16:13  与f  阅读(25)  评论(0编辑  收藏  举报