第二章、application.properties文件的配置
前面讲到了如何搭建一个简单的springboot应用是不是特别简单。springboot内置了tomcat这就大大减少了我们自己配置tomcat所产生的各种各样的配置手续包括所出现的问题。通过main方法所有启动程序都在SpringApplication.run()这个方法里有兴趣的童鞋可以看看其内部是如何配置数据源、启动tomcat以及注入类对象的。现在我们从它的配置文件application.properties开始。springboot剔除了复杂的spring配置XML文件所有的配置都写在此文件中。当然实际配置中还可以配置application-dev.properties和application-prod.properties测试和生成环境的配置将application.properties作为基础公共的配置。一、项目配置文件1、springboot采用properties文件作为总配置文件默认application.propertiesapplication-dev.properties和application-prod.properties作为项目的启动配置也就是说项目启动时会默认读取此配置文件的内容并加载某些配置/p2、springboot配置文件默认放在src/main/resource文件下如果没有此文件springboot会采取默认配置推荐使用mavenspringboot也是基于maven搭建的项目其依赖包也十分全面因此先建立好一个application.properties二、默认配置springboot中采取了很多默认的配置在配置文件中需要使用默认配置名称springboot加载时会自动读取;一些常见的通用配置spring.profiles.activeprod;//激活当前环境配置 spring.datasource.typecom.alibaba.druid.pool.DruidDataSource;//数据源也就是产生数据源的jar包这里使用druid数据源 spring.datasource.url;//数据源也就是MySQL或orcale连接路径 spring.datasource.username;//数据库用户名 spring.datasource.password;//数据库密码 spring.datasource.driver-class-namecom.mysql.jdbc.Driver server.port11080;//访问端口号 server.session.timeout1800;//session失效时间 server.error.path/error;//错误页controller三、自定义配置1、当然也可以定义自定义属性对于自定义属性配置需要通过注解来加载/pcom.name111 com.name1222 Value(value${com.name}) private String name;//既可以将name值赋予变量2、除了在配置文件中配置还可以在启动jar包时候改动如java -jar xx.jar --server.port9090将端口号修改为9090符号“--”后面的即为配置文件中的配置在多环境中可以通过此参数随时切换配置p3、有时候我们需要引入外部的静态资源和配置文件方便动静分离可以如此配置web.upload-path//home//web//oriflame_static// spring.mvc.static-path-pattern/** spring.resources.static-locationsclasspath:/METAINF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${web.upload-path}配置把默认的三个静态资源路径也记上了最后一个是引用服务器上绝对路径SpringBootApplication PropertySource(valuefile:D:/test.properties,encodingutf-8) public class Applcation { public static void main(final String[] args) { SpringApplication.run(Applcation.class, args); } }即可以引导到d盘中的配置文件四、springboot默认读取配置文件springboot采用了默认读取配置文件的规则1、config/application.properties项目根目录中config目录下2、config/application.yml3、application.properties项目根目录下4、application.yml5、resources/config/application.properties项目resources目录中config目录下6、resources/config/application.yml7、resources/application.properties项目的resources目录下这也是我们一般存放配置文件的位置8、resources/application.yml五、配置的优先级配置文件的相互覆盖1、如果项目中有多个配置文件会存在优先级优先级最高的属性文件会覆盖优先级较低的1、外置在相对于应用程序运行目录的/congfig子目录里。2、外置在应用程序运行的目录里3、内置在config包内4、内置在Classpath根目录5、如果同一个目录下有application.yml也有application.properties默认先读取application.properties。6、如果同一个配置属性在多个配置文件都配置了默认使用第1个读取到的后面读取的不覆盖前面读取到的。7、创建SpringBoot项目时 一般的配置文件放置在项目的resources目录下不要在多个配置文件配置相同属性根据优先级最高的文件会覆盖较低的文件中的相同属性六、更多配置可以自行搜索更多配置包括模板、mybatis、redis等等 通过设置配置springboot加载的时候更加灵活性的容纳这些功能