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