创建第一个SpringBoot应用

第一步:创建一个maven项目,如下。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTM4MTg2Mw==,size_16,color_FFFFFF,t_70

第二步:继承SpringBoot工程。引入核心依赖。

<!-- 指定一些默认属性 -->
  <properties>
  	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
	<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
	<java.version>1.8</java.version>
  </properties>
  
  <parent>
  	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<!-- 选用稳定、够新的版本即可 -->
	<version>2.1.0.RELEASE</version>
	<relativePath />
  </parent>
  
  <dependencies>
  	<!-- web模块包 引入之后就可以直接进行web服务开发.里面包含了tomcat、spring和springMVC等 -->
  	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
  </dependencies>

可以尝试注释掉"spring-boot-starter-web"依赖,可以发现无法使用任何spring或者springMVC的类或注解。即可以证明"spring-boot-starter-web"的作用。也可证明,springboot不是一个新的框架,只是将其他框架的功能整合在一起,为我们提供一个"开箱即用"的环境。

第三步:编写配置文件及启动项目入口

springboot遵循"约定优先配置"的原则,使用springboot只需很少的配置,大部分的时候直接使用默认配置即可(并不是没有配置)。

1、加载默认的配置文件。在/src/main/resource/路径下,创建一个application.properties文件。如下:

# 默认加载8080
server.port=9999

说明:除了xxx.properties文件格式,还支持xxx.yml文件格式。配置也不仅仅只有server.port这一项。

2、在任意包路径下创建一个启动类(类名任意),如下

@SpringBootApplication
public class App {

	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}

至此,就可以启动一个springboot项目了。接着就可以直接在项目中写熟悉的controller、service、mapper等。

注意:其他组件,比如controller层、service层、dao层、配置层等使用到spring功能的类,一定要属于启动类App.class所在包或其子包。因为启动类默认扫描装配的是其所在的包及子包,否则需要在启动注解@SpringBootApplication上指定扫描的包,spring才能将其装配。包结构示例如下:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTM4MTg2Mw==,size_16,color_FFFFFF,t_70

指定扫描其他路径示例如下:

@SpringBootApplication(scanBasePackages = {"com.zepal","其它"})
// 如果在@SpringBootApplication上指定了扫描路径,则不用单独使用@ComponentScan指定了
// @SpringBootApplication是一个组合注解,包含了@ComponentScan
// 功能和spring中的<context:component-scan>标签功能相同
// basePackages属性是数组值,支持通配符
// @ComponentScan(basePackages = "com.zepal")

加载其他路径的配置文件

上述方式使用的是默认加载/src/main/resource/路径下配置文件。除此之外,springboot还可以指定加载其他路径的配置文件。

将springboot打包成一个可执行的jar包之后。执行启动命令指定。如下:

// 指定配置文件的路径是绝对路径.可任意命名
java -jar xxx.jar --spring.config.location=D:\config\xxx.properties

springboot加载配置文件的方式一共有五种,以下按照优先级排列:

1、启动可执行jar包指定配置文件,可以自定义命名配置文件;

2、在可执行jar包文件的同目录下建一个config文件夹,将配置文件放到该文件夹,需要命名为application.properties(application.yml);

3、直接将配置文件放到jar包的同目录下,需要命名为application.properties;

4、在项目的/src/main/resource/路径下建一个config文件夹,将配置文件放到该目录下,需要命名为application.properties(application.yml);

5、在项目的/src/main/resource/路径下,直接创建一个配置文件,需要命名为application.properties(application.yml),即上述方式。

其实为了减少麻烦,或者说统一所有springboot使用者的习惯,还是建议用第4种或者第5种方式。

创建不同环境的配置文件

在开发应用时,通常有开发环境、测试环境、生产环境等。其中每个环境都有自己的配置信息,比如端口、数据库连接、MQ连接、redis连接等。如果每次换一个环境就需要改动一次,相对较麻烦还容易出错。那么,我们就可以直接创建出不同环境的配置信息,然后在不同的环境中指定相应的配置文件即可。(以下用xxx.properties说明,xxx.yml同样支持)

多环境的配置文件命名需要满足,application-{profile}.properties的格式(${profile}对应环境标识)。示例如下:

application-dev.properties:开发环境

application-test.properties:测试环境

application-prod.properties:生产环境

至于具体加载哪一个环境的配置文件,需要在配置文件中通过spring.profiles.active配置项去指定。如下:

# 配置项的值对应配置文件名的{profile}。test、dev、prod
spring.profiles.active=test

上述配置则会加载application-test.properties。此方式是通过application.properties为主配置文件,去加载了不同环境的差异信息,不然鬼知道该去哪里加载spring.profiles.active这个属性。比如:application-dev加载127.0.0.1机器的数据库,application-test加载127.0.0.2机器的数据库。那么通过spring.profiles.active制定不同的配置文件后,就可以加载不同的数据库连接信息了。

同样,也可以在打包后,启动jar时通过spring.profiles.active指定。如下:

java -jar xxx.jar --spring.profiles.active=prod

那么,就可以加载application-prod.properties文件了,这种方式不需要application.properties为主文件。

问题来了,这种方式好像和通过"java -jar xxx.jar --spring.config.location=D:\config\xxx.properties"指定任意配置文件,是一样的功能。画蛇添足,无解。

 定制自己的启动图标(banner),骚

springboot启动时,原图标如下:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTM4MTg2Mw==,size_16,color_FFFFFF,t_70

第一步:创建一个banner.txt文件。并输入任意信息。比如输入:hello zepal。

第二步:将banner.txt放入项目的/src/main/resource/路径下。

启动之后就可以看到banner.txt中的信息。如下:

20200602221427443.png

当然,还可以定制艺术字体。访问工具网站:http://patorjk.com/software/taag

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTM4MTg2Mw==,size_16,color_FFFFFF,t_70

重复上述步骤,再启动应用,效果如下:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTM4MTg2Mw==,size_16,color_FFFFFF,t_70

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------不积跬步无以至千里

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值