简单来说,别人的工程,你想用,需要修改一些东西,才能用,按照以下步骤即可。

springboot默认配置文件是application.properties,在里面直接修改就行。
格式为key-value
- #修改服务器端口
- server.port=80
spring.main.banner-mode=off
logging.level.root=debug
还可以针对不同的包设置不同的日志级别:
- logging.level.com.itheima=info
- logging.level.com.timid=info
application.properties中可以配置很多属性,具体可见官方文档,
注意:SpringBoot中导入对应starter后,提供对应配置属性
1.application.properties(默认方式)
2.application.yml (主流方式/推荐方式)
3.application.yaml
application.properties(properties格式)
server.port=80
application.yml(yml格式)
- server:
- port: 81
application.yaml(yaml格式)
- server:
- port: 82
配置文件加载优先级:yaml>yml>properties (验证方式:新建一个yaml文件和yml文件,三个文件同时配置server的port端口,分别设置为80、81、82,看哪个生效)
黑马视频中所讲的正好和我验证的相反,不知道为什么?
在yaml中写配置,可能遇见没有自动提示,可用下面方法解决。

指定SpringBoot配置文件
Setting → Project Structure → Facets
选中对应项目/工程
Customize Spring Boot
选择配置文件
大小写敏感
属性层级关系使用多行描述,每行结尾使用冒号结束
使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
#号 表示注释
常见的数据书写格式
boolean: TRUE #TRUE,true,True,FALSE,false,False均可
float: 3.14 #6.8523015e+5 #支持科学计数法
int: 123 #0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制
null: ~ #使用~表示null
string: HelloWorld #字符串可以直接书写
string2: "Hello World" #可以使用双引号包裹特殊字符
date: 2018-02-17 #日期必须使用yyyy-MM-dd格式
datetime: 2018-02-17T15:02:31+08:00 #时间和日期之间使用T连接,最后使用+代表时区
数组表示方法:在属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔
subject:
- Java
- 前端
- 大数据
enterprise:
name: itcast
age: 16
subject:
- Java
- 前端
- 大数据
likes: [王者荣耀,刺激战场] #数组书写缩略格式
users: #对象数组格式一
- name: Tom
age: 4
- name: Jerry
age: 5
users: #对象数组格式二
-
name: Tom
age: 4
-
name: Jerry
age: 5
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ] #对象数组缩略格式
yaml中保存的单个数据,可以使用Spring中的注解直接读取,使用@Value可以读取单个数据,属性名引用方式:${一级属性名.二级属性名……}

- @Value("${server.port}")
- private String port;


记得使用@Value注解时,要将该注入写在某一个指定的Spring管控的bean的属性名上方。现在就可以读取到对应的单一数据行了

使用@ConfigurationProperties注解绑定配置信息到封装类中。
封装类需要定义为Spring管理的bean,否则无法进行属性注入


SpringBoot提供了一个对象,能够把所有的数据都封装到这一个对象中,这个对象叫做Environment,使用自动装配注解可以将所有的yaml数据封装到这个对象中

数据封装到了Environment对象中,获取属性时,通过Environment的接口操作进行,具体方法时getProperties(String),参数填写属性名即可
总结
使用Environment对象封装全部配置信息
使用@Autowired自动装配数据到Environment对象中


如果不在启动类所在的包及其子包,那么在springTest里指定类也可以,下面两种写法等价:
- // 告诉spring 测试对象是谁
- @SpringBootTest(classes=BootJunitApplication.class)
-
- @SpringBootTest
- @ContextConfiguration(classes=BootJunitApplication.class)
测试类如果存在于引导类所在包或子包中无需指定引导类
测试类如果不存在于引导类所在的包或子包中需要通过classes属性指定引导类
所需的sql语句
- DROP TABLE IF EXISTS `tbl_book`;
- CREATE TABLE `tbl_book` (
- `id` int NOT NULL AUTO_INCREMENT,
- `name` varchar(50) ,
- `type` varchar(100) ,
- `description` varchar(100) ,
- PRIMARY KEY (`id`) USING BTREE
- );
-
- INSERT INTO `tbl_book` VALUES (1, '三体', '科幻', '大刘的巅峰之作,将中国科幻推向世界舞台。总共分为三部曲:《地球往事》、《黑暗森林》、《死神永生》。');
- INSERT INTO `tbl_book` VALUES (2, '格林童话', '童话', '睡前故事。');
- INSERT INTO `tbl_book` VALUES (3, 'Spring 5设计模式', '计算机理论', '深入Spring源码剖析Spring源码中蕴含的10大设计模式');
- INSERT INTO `tbl_book` VALUES (4, 'Spring MVC+ MyBatis开发从入门到项目实战', '计算机理论', '全方位解析面向Web应用的轻量级框架,带你成为Spring MVC开发高手');
- INSERT INTO `tbl_book` VALUES (5, '轻量级Java Web企业应用实战', '计算机理论', '源码级剖析Spring框架,适合已掌握Java基础的读者');
- INSERT INTO `tbl_book` VALUES (6, 'Java核心技术卷|基础知识(原书第11版)', '计算机理论', 'Core Java第11版,Jolt大奖获奖作品,针对Java SE9、10、 11全面更新');
- INSERT INTO `tbl_book` VALUES (7, '深入理解Java虚拟机', '计算机理论', '5个维度全面剖析JVM,面试知识点全覆盖');
- INSERT INTO `tbl_book` VALUES (8, 'Java编程思想(第4版)', '计算机理论', 'Java学习必读经典殿堂级著作!赢得了全球程序员的广泛赞誉');
- INSERT INTO `tbl_book` VALUES (9, '零基础学Java (全彩版)', '计算机理论', '零基础自学编程的入门]图书,由浅入深,详解Java语言的编程思想和核心技术');
- INSERT INTO `tbl_book` VALUES (10, '直播就该这么做:主播高效沟通实战指南', '市场营销', '李子柒、李佳琦、薇娅成长为网红的秘密都在书中');
- INSERT INTO `tbl_book` VALUES (11, '直播销讲实战一本通', '市场营销', '和秋叶一起学系列网络营销书籍');
- INSERT INTO `tbl_book` VALUES (12, '直播带货:淘宝、天猫直播从新手到高手', '市场营销', '一本教你如何玩转直播的书, 10堂课轻松实现带货月入3W+');
- INSERT INTO `tbl_book` VALUES (13, 'Spring实战第5版', '计算机理论', 'Spring入门经典教程,深入理解Spring原理技术内幕');
- INSERT INTO `tbl_book` VALUES (14, 'Spring 5核心原理与30个类手写实战', '计算机理论', '十年沉淀之作,写Spring精华思想');
-
-
1. 创建新模块,选择springinitial,并配置相关模块信息
2.在application.yml 中写配置信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/boot_db?serverTimezone=UTC&useUnicode=true
username: root
password: root
在url后面要加上时区 ?serverTimezone=UTC&useUnicode=true
3.定义数据库接口与映射配置
- @Mapper
- public interface BookDao {
- @Select("select * from tbl_book where id=#{id}")
- public Book getById(Integer id);
- }
记得要添加@Mapper 被容器识别到
4.在测试类中注入dao配置,测试功能
- @SpringBootTest
- class BootMybatisApplicationTests {
- @Autowired
- private BookDao bookDao;
- @Test
- void contextLoads() {
- System.out.println(bookDao.getById(1));
- }
- }
1.导入对应的starter
-
com.baomidou -
mybatis-plus-boot-starter -
3.4.3
2.配置数据源相关信息 和映射接口
- #2.配置相关信息
- spring:
- datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3306/ssm_db
- username: root
- password: root
- @Mapper
- public interface BookDao extends BaseMapper
{ -
- }
核心在于Dao接口继承了一个BaseMapper的接口,这个接口中帮助开发者预定了若干个常用的API接口,简化了通用API接口的开发工作。

因为数据库中表明为tbl_book,而实体类名为book,需要做一个配置, 添加如下配置即可,设置所有表名的通用前缀名
mybatis-plus:
global-config:
db-config:
table-prefix: tbl_ #设置所有表的通用前缀名称为tbl_
导入对应的技术坐标(添加对应的依赖)
-
com.alibaba -
druid -
1.2.14 -
2. 配置使用指定的数据源类型

总结
整合Druid需要导入Druid对应的starter
根据Druid提供的配置方式进行配置
整合第三方技术通用方式
导入对应的starter
根据提供的配置格式,配置非默认值对应的配置项