文章目录:一.Spring项目的创建(1)SpringBoot的含义
(2)SpringBoot的优点
(3)项目目录的运行和介绍
二.SpringBoot的配置文件
(1)配置文件的作用
(2)两种主要的配置文件:properties、yml语法和优缺点
三.设置不同环境的配置文件
一.Spring项目的创建
1.SpringBoot含义
SpringBoot是简化Spring程序开发的脚手架
2.SpringBoot的优点
(1)快速集成框架:SpringBoot在创建的时候提供了添加依赖的功能,不再需要手动往配置文件里添加依赖
(2) 内置运行容器,不需要再配置Tomcat等Web容器,直接运行和部署程序
(3)快速部署项目,无需任何外部容器即可启动并运行项目
(4)可以不再用xml的方式,使用注解和配置的方式进行开发
(5)支持更多的监控的指标,可以更好的了解项目的运行情况
3.Spring项目的创建
(1)安装SpringBoot Helper插件
(2)创建Spring项目
(2)
注意:第一次打开SpringBoot项目加载可能会比较慢,因为SpringBoot里添加的第三方框架并不在本地仓库,如果长时间加载,或者加载失败,我们需要检查是否配置了国内源
(3)项目目录的介绍和运行
(4)启动类
下面我们用SpringBoot项目来实现和浏览器和用户的交互
我们发送一个请求然后最终在客户端上返回个hello
这里@ResponseBody注解表示的是:表示当前类中的所有方法返回的都是非静态页面的数据
二.SpringBoot的配置文件
1.配置文件的作用:
用于存放数据库的信息(url、用户名、密码)
用于设置项目端口
第三方系统的调用密钥等信息
可用于设置普通日志和异常日志,用于定位和发现问题
如果没有配置文件,那么项目就不能连接数据库,也没法用日志来排查问题
2.SpringBoot的配置文件主要有两种配置文件:
properties配置文件
(1)properties语法
采用键值对的方式,key和Value之间采用=连接
server.port=8080
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/java_114?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
javaclass=106
studentid=3
(2)读取properties配置文件
采用注解@Value 注意使用"${}"格式来读取
public class Bup {
@Value("${server.port}")
public int port;
@Value("${javaclass}")
public int javaclass;
@Value("${studentid}")
public int studentid;
@Value("${spring.datasource.url}")
public String url;
@Value("${spring.datasource.username}")
public String username;
@Value("${spring.datasource.password}")
}
(3)properties配置文件优点和缺点
(1)key会出现很多的冗余信息
(2) 只支持java一种编程语言
优点:SpringBoot项目默认的配置文件,且它的优先级比yml文件高,当出现相同的配置项时,以properties配置文件为主。
yml配置文件
(1)yml基本语法
yml是树形结构的配置文件。它的基础是“key: value”,注意key和Value之间使用英文冒号加空格的方式组成,其中的空格不可省略
server:
port: 8080
string: java
student:
id: 2
name: xiohai
age: 18
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/java_114?characterEncoding=utf8
username: root
password: root
(2)yml配置读取
和properties配置文件读取一样,都使用注解@Value即可
注意事项:value 值加单双引号
string:
str1: hello \n root
str2: 'hello \n root'
str3: "hello \n root"
@RestController
@Component
@ResponseBody
public class Bup {
@Value("${string.str1}")
public String str1;
@Value("${string.str2}")
public String str2;
@Value("${string.str3}")
public String str3;
@PostConstruct
public void doPostConstruct()
{
System.out.println("str1:"+str1);
System.out.println("str2:"+str2);
System.out.println("str3:"+str3);
}
}
我们来看一下打印结果:
从结果我们可以看出:字符串 默认不加上单引号或双引号、单引号会转义特殊字符成一个普通的字符,而双引号不会转义特殊字符里面的普通字符,特殊字符表达它本身含义。
配置对象:
student:
id: 2
name: xiohai
age: 18
或者是行内写法:
student: {id: 2,name: xiaohai,age: 18}
这时候我们不再用Value注解来读取了,而是使用@ConfigurationProperties
@ConfigurationProperties("student")
@Component
@Setter
@Getter
@ToString
public class student {
public int id;
public String name;
public int age;
}
注意原则上这个类里面我们必须写所有属性的Getter和Setter方法,为这个里我们写了Setter和Getter注解,所以可以省去
然后把student对象注入到Bup类里
@RestController
@Component
@ResponseBody
public class Bup {
@Autowired
public student cup;
@PostConstruct
public void doPostConstruct() {
System.out.println(cup);
}
}
我们看一下打印结果:
(3)yml优点:
可以更好的解决冗余问题
更具通用性,可以支持多种编程语言
三.设置不同环境的配置文件
1.创建不同环境的配置文件:
application-dev.tml(开发环境)
application-prod.yml(生产环境)
application-test(测试环境)
2.在application.yml中设置运行环境
spring:
profiles:
active: dev //表示当前项目所处的环境为开发环境
我们将开发的环境项目端口号设为 :7089,生产环境端口号设为:8056,测试环境端口号:7077,我们将当前项目的环境设为开发环境:我们看一下用的端口号,
这表示我们当前确实处在开发的环境。