上两个项目我们创建了springboot的入口类,这里总结一下它的一些特点

  • 入口类命名通常以*Application结尾
  • 入口类上增加@SpringBoootApplication注解
  • 利用SpringApplication.run()方法启动应用

spring boot启动流程

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_后端

 其中,自动装配就是在项目02中pom文件配置,添加相应starter后就能添加相关的处理能力。

加载组件中:

@Repository对应了我们DAO类,用于数据处理。

@Service对应了我们的业务逻辑类

@Controller对应了MVC中的控制器类

@Component对应了不太好区别的类,可以用改注解进行统一加载

@Entity实体类


application.propperties核心配置文件中可以设置springboot的一些常用核心配置项:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_spring_02

  • server.port

让我们试一下在application.propperties核心配置文件中输入server.port=80,修改端口号为80:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_配置文件_03

 启动入口类,显示成功:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_后端_04

 打开浏览器直接输入localhost/out验证成功,不用写localhost:8080/out了:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_spring boot_05

  • server.servlet.context-path 

如果tomcat中有多个应用都有out,那么如何知道是哪个out呢,这时就需要应用上下文配置了。我们在配置文件中输入以下代码:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_java_06

 重新加载以下程序,在浏览器中输入localhost/out

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_java_07

 这时显示找不到页面,我们需要在映射地址前加上应用的上下文,输入localhost/myspringboot02/out,

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_后端_08

  • spring.datasource.*

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_spring boot_09

 在配置文件中可以配置链接数据库相关的参数,当使用jpa或者jdbc链接数据库时它就会自动读取这些配置信息完成初始化工作。

但其实这种方式,不是一种很好的选择。比如把数据库配置隔了很多行放,那么配置人员可能得一个个找到相关配置并验证,我们有一个更好得选择——yml


springboot支持两种配置文件

  • 属性文件:application.properties
  • YAML格式:application.yml

在resource文件中,创建application.yml文件,然后输入:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_配置文件_10

 yml会根据缩减、空格等形式将配置信息归类到一起。

在实际项目开发中,我们通常将项目得自定义信息放在yml配置文件中。比如我们在yml文件中输入一些自定义选项:

mall:
 config:
  name: 爱美商城
  description: 这是一家化妆品特卖网站
  hot-sales: 20
  show-advert: true

然后,我们在控制器中定义一些类,将上述的信息注入,让springboot启动时可以直接使用。那么注入只需在字段上加@value注解,这个注解在启动时会自动到yml文件中扫描注入。

@Value("${mall.config.name}")
    private String name;
    @Value("${mall.config.description}")
    private String description;
    @Value("${mall.config.hot-sales}")
    private Integer hotSales;
    @Value("${mall.config.show-advert}")
    private Boolean showAdvert;

然后定义一个info方法打印这些信息,info方式使用字符串格式化(String.format)的方式输出:

@RequestMapping("/info")
@ResponseBody
public String info() {
    return String.format("name:%s,description:%s,hot-sales:%s,show-advert:%s",
        name, description, hotSales, showAdvert);
}

然后验证成功:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_spring boot_11

 


但是如果在开发时,我们链接本地的测试数据库,如果程序上线,我们需要链接生成数据库,如果只有一个配置文件,那么我们需要修改大量配置信息。所以springboot可针对不同的环境提供不同的profile文件。默认命名格式为application-{env}.yml,使用spring.profiles.active选项来指定不同的profile。

比如,我们刚刚创建了application.yml文件,我们在resource文件下再创建两个application-dev.yml和application-prd.yml文件,来模拟线上线下的不同坏境,这是我们只需要在原来的application.yml文件中输入

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_后端_12

即可指定用dev的yml文件。 


springboot的打包与运行

  • 利用Maven的package命令,生成可独立运行的Jar包
  • 利用java -jar xxx.jar命令启动Spring Boot应用
  • Jar包可自动加载同目录的application配置文件

点击项目的Edit Configurations:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_spring_13

点击+号,选择maven: 

 

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_后端_14

输入Name为包名,输入command line选择package:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_spring boot_15

此时,下拉框有了一个package选项:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_spring boot_16

 点击运行,但是这里报错了,程序有一些包未能引入,这里因为我们的程序还没完整,为了演示打包功能,我们把未完成报错的地方删除。再来一次:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_java_17

 提示成功了。找一下路径:

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_java_18

 在项目的target文件中,让我们运行它,打开命令窗口,在指定的地址输入java -jar jar包名

windows启动spring boot 启用外部配置文件 如何配置springboot项目的启动_后端_19

就可以运行该项目。如果想修改配置,可以在jar包同目录下创建yml配置文件,它会优先读取同目录下的yml配置文件。


以上,就是springboot项目的前期准备与知识,后面将开始激动人心的正式项目拉(虽然这个项目一般般,但是记录美好生活)。