SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)

 一、SpringBoot入门

1.1 SpringBoot概述

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。

Spring程序缺点:配置繁琐,依赖设置繁琐。SpringBoot程序优点:自动装配,起步依赖(简化依赖配置),赋值功能(内置服务器)。

版本管理:以后不需要管版本,只需要告诉是SpringBoot几,就自动将所有最佳组合的版本配合在一起做好。

依赖管理:所有的依赖SpringBoot都已经自动装配好。

起步依赖

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第1张图片

starter:SpringBoot中创建项目名称,定义了当前项目使用的所有项目坐标,以达到减少依赖配置的目的。

parent:所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的。

 Springboot简化了SpringMVC的开发: 

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第2张图片

 核心功能是靠下面的继承来实现


	org.springframework.boot
	spring-boot-starter-parent
	3.1.3
	 

1.2 项目创建与启动

第1步:新建Maven项目(或项目),选择Spring初始化,并配置模块相关信息

注意选择Spring Initializr;Package name后面的后缀要删掉,和Group保持一致;

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第3张图片

第2步:选择当前模块需要使用的技术集,勾选Spring Web

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第4张图片

第3步:开发控制器类,在java下面创建controller然后新建类BookController,在里面编写代码如下

@RestController
@RequestMapping("/books")
public class BookController {
    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println("id ==> "+id);
        return "hello , spring boot !";
    }
}

第4步:然后右键下面的文件运行,启动:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第5张图片

1.3 项目.jar包运行

Maven中点击Package会将项目打成一个.jar包:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第6张图片 SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第7张图片

右键.jar包点击Open in 点击Explorer:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第8张图片

在搜索栏中输入cmd,然后输入java -jar,输入一个s然后点击Tab键就可以自动补全,然后点击运行即可:

依赖的是下面的插件:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第9张图片

1.4 配置文件书写格式

想改变端口号:

1. 在application.properties里写入:

server.port=80

 2. 在resources下创建application.yml【主要书写方式】里写入下面代码,注意port:后面有一个空格:

server:
    port: 80

3. 在application.yaml里写入如下代码:

server:
    port: 80

自动提示功能消失解决方案:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第10张图片

生效顺序:properties > yml > yaml 

二、yaml

2.1 yaml格式

YAML(YAML Ain't Marku Language)是一种数据序列化格式。

优点:容易阅读。容易与脚本语言交互。以数据为核心,重数据轻格式。

YAML文件拓展名:.yml(主流)、.yaml

yaml语法规则:

层级关系用冒号结束;以缩进表示层级关系(类似python);在属性后面要添空格;大小写敏感

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第11张图片

2.2 yaml数据读取

方法1:使用@Value读取单个数据

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第12张图片

方法2:全部封装到nvironment对象

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第13张图片

 方法3:自定义对象封装指定数据

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第14张图片

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第15张图片

三、多环境开发

3.1 配置问题

在.yml和.yaml中按照如下方式书写,可以切换不同的环境,输入profile选第1个就行,输入port选第1个填入端口后即可:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第16张图片SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第17张图片SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第18张图片SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第19张图片

在properties文件中的书写按照如下方式:

 SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第20张图片

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第21张图片SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第22张图片

3.2 命令行启动参数设置

打包之前先执行clean

在后面加上:--spring.profiles.active=环境名 ,可以使用不同的环境启动。

如果想更改启动.jar包的端口也是可以的,只需要在后面加上 : --server.port=端口号。

还可以进行累加,例如下面采用88端口以test的环境启动:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第23张图片

3.3 兼容问题

以maven为主,boot为辅,以maven控制版本,然后让boot加载maven的版本。

假如maven是pro生效,SpringBoot是dev生效,那么最终是用dev:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第24张图片SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第25张图片

首先要在Maven中设置多环境,boot中要读取引用Maven中设置的多环境:

 SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第26张图片SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第27张图片

在打包之前需要导入下面的插件,需要将占位符解析,将里面的值改为true。


       org.apache.maven.plugins
       maven-resources-plugin
       3.2.0
       
       UTF-8
       true
       

3.4 配置文件分类

IDEA的resources下的config里的配置文件优先级是第3级:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第28张图片 SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第29张图片

在jar包目录下写一个配置文件,可以覆盖IDEA里的配置文件,优先级是第2级:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第30张图片

还可以在jar包目录下写一个config配置文件,是第1级:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第31张图片

四、SpringBoot整合

4.1 整合junit

首先要搞清楚什么是要写的,什么是不要写的。大家写得一样的是不用写的。

首先在java下面创建BookService接口:

public interface BookService {
    public void save();
}

然后在service下面创建impl包,然后再impl包下面创建BookServiceImpl类,写入如下代码:

@Service
public class BookServiceImpl implements BookService {
    @Override
    public void save() {
        System.out.println("book service is running ...");
    }
}

在测试类里写入如下代码:

 SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第32张图片

只需要加入@Autowired注解,把要测试的资源注入进去,然后直接使用即可:

@SpringBootTest
class Demo4ApplicationTests {
    @Autowired
    private BookService bookService;
    @Test
    void contextLoads() {
        bookService.save();
    }
}

在java类下面的这个类相当于配置类:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第33张图片 ’

会自动加载同层目录下的文件,如果不在同层目录,就需要自己指定:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第34张图片

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第35张图片

4.2 整合mybatis

1. 新建全新项目,注意更改依赖:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第36张图片

2. 创建domain-Book,在里面写入实体类:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第37张图片

3. 创建dao-BookDao数据层接口,写SQL语句

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第38张图片

4. 将更改.properties文件为.yml,书写jdbc配置:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第39张图片

5. 在测试类中写测试方法:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第40张图片

6. 可以指定数据源,导入依赖,然后再.yml文件中指定type


    com.alibaba
    druid
    1.1.16

 

4.3 基于SpringBoot整合实现SSM

1. 新建一个项目,同上:

2. 导入druid坐标,编写配置类.yml格式,同上:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第41张图片

3. config包可以删掉,dao包中的BookDao要加一个@Mapper注解,其余不变:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第42张图片 SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第43张图片

4. 编写测试类;复制静态页面放在static页面下:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第44张图片SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第45张图片

5. 启动java下的启动类:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第46张图片

即可正常展示:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第47张图片

五、心得总结

5.1 学习复盘

待写...

5.2 面试真题

1. springboot优点,技术选型原因,为什么不用其他框架?为什么要使用SpringBoot做开发?与传统的开发有什么不一样的?

2. spring boot中的控制反转?

3. SpringBoot的启动类上要加什么注解?这个注解的原理?SpringBoot的启动原理?

4. Spring Boot的自动装配流程?SpringBoot自动配置原理?

5. SpringbootApplication是如何实现依赖注入的?

6. springboot框架url映射过程?

7. 聊聊Springboot与SpringCloud的区别?

8. 在Spring boot的一个请求中,如何实现并发?

9. Springboot如何开发一个http接口?

10. return model过程?

5.3 常见问题

1. 如果端口号没能更改成功,要检查启动的是否是正确的项目:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第48张图片

2. 如果因为中文导致无法打包或者乱码的按下面方式处理:

SpringBoot学习笔记(项目创建,yaml,多环境开发,整合mybatis SMM)_第49张图片

你可能感兴趣的:(spring,boot,学习,笔记)