上两个项目我们创建了springboot的入口类,这里总结一下它的一些特点
- 入口类命名通常以*Application结尾
- 入口类上增加@SpringBoootApplication注解
- 利用SpringApplication.run()方法启动应用
spring boot启动流程
其中,自动装配就是在项目02中pom文件配置,添加相应starter后就能添加相关的处理能力。
加载组件中:
@Repository对应了我们DAO类,用于数据处理。
@Service对应了我们的业务逻辑类
@Controller对应了MVC中的控制器类
@Component对应了不太好区别的类,可以用改注解进行统一加载
@Entity实体类
application.propperties核心配置文件中可以设置springboot的一些常用核心配置项:
- server.port
让我们试一下在application.propperties核心配置文件中输入server.port=80,修改端口号为80:
启动入口类,显示成功:
打开浏览器直接输入localhost/out验证成功,不用写localhost:8080/out了:
- server.servlet.context-path
如果tomcat中有多个应用都有out,那么如何知道是哪个out呢,这时就需要应用上下文配置了。我们在配置文件中输入以下代码:
重新加载以下程序,在浏览器中输入localhost/out
这时显示找不到页面,我们需要在映射地址前加上应用的上下文,输入localhost/myspringboot02/out,
- spring.datasource.*
在配置文件中可以配置链接数据库相关的参数,当使用jpa或者jdbc链接数据库时它就会自动读取这些配置信息完成初始化工作。
但其实这种方式,不是一种很好的选择。比如把数据库配置隔了很多行放,那么配置人员可能得一个个找到相关配置并验证,我们有一个更好得选择——yml
springboot支持两种配置文件:
- 属性文件:application.properties
- YAML格式:application.yml
在resource文件中,创建application.yml文件,然后输入:
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);
}
然后验证成功:
但是如果在开发时,我们链接本地的测试数据库,如果程序上线,我们需要链接生成数据库,如果只有一个配置文件,那么我们需要修改大量配置信息。所以springboot可针对不同的环境提供不同的profile文件。默认命名格式为application-{env}.yml,使用spring.profiles.active选项来指定不同的profile。
比如,我们刚刚创建了application.yml文件,我们在resource文件下再创建两个application-dev.yml和application-prd.yml文件,来模拟线上线下的不同坏境,这是我们只需要在原来的application.yml文件中输入
即可指定用dev的yml文件。
springboot的打包与运行
- 利用Maven的package命令,生成可独立运行的Jar包
- 利用java -jar xxx.jar命令启动Spring Boot应用
- Jar包可自动加载同目录的application配置文件
点击项目的Edit Configurations:
点击+号,选择maven:
输入Name为包名,输入command line选择package:
此时,下拉框有了一个package选项:
点击运行,但是这里报错了,程序有一些包未能引入,这里因为我们的程序还没完整,为了演示打包功能,我们把未完成报错的地方删除。再来一次:
提示成功了。找一下路径:
在项目的target文件中,让我们运行它,打开命令窗口,在指定的地址输入java -jar jar包名
就可以运行该项目。如果想修改配置,可以在jar包同目录下创建yml配置文件,它会优先读取同目录下的yml配置文件。
以上,就是springboot项目的前期准备与知识,后面将开始激动人心的正式项目拉(虽然这个项目一般般,但是记录美好生活)。