• SpringBoot的学习要点


    springboot是什么?

    • Spring Boot 是基于 Spring 框架的一种快速构建微服务应用的方式。它主要提供了自动配置、简化配置、运行时应用监控等功能。
    • 主要用来简化Spring应用的初始搭建以及开发过程
    • 优点:
      • 起步依赖(简化依赖配置)
        • parent, starter
        • 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,如果发生坐标错误,再指定Version
      • 自动配置(简化常用工程相关配置)
      • 辅助功能(内置服务器……)
        • tomcat(默认):apache出口,应用面广,负载了若干较重的组件
        • jetty:更轻量级,负载性能远不及tomcat
        • undertow:负载性能勉强胜于tomcat
      • springboot与微服务

        • 微服务是一种软件架构风格,在进行项目开发时一个完整的应用由一组微服务组成,每个小型服务都运行在自己的进程内,多个不同的微服务之间使用HTTP进行通信。 

    SpringBoot的基本内容

    • 1、SpringBoot的启动方式:引导类
        1. @SpringBootApplication
        2. public class DemoApplication {
        3. public static void main(String[] args) {
        4. SpringApplication.run(DemoApplication.class, args);
        5. }
        6. }
      • SpringBoot工程运行后初始化Spring容器,扫描引导类所在的包加载bean
    • 2、SpringBoot提供的配置文件格式:(优先顺序:properties>yml>yaml)
      • application.properties(等号)
      • application.yml(主流格式):
        • yml书写格式:数据前面要加空格与冒号隔开
        • yml数据读取:使用@Value读取单个数据,属性名引用方式:${一级属性名,二级属性名……}
        • yml文件内部引用属性:使用${xxx(属性名)},一变全变
          • 属性值中的转义字符需要用双引号包起
            • lesson: "Spring\tboot\nlesson"
        • 配置信息的简便用法:(把配置文件里需要的那部分信息封装成一个对象使用)
          • (1)使用@ConfigurationProperties注解绑定配置信息到封装类中
          • (2)封装类需要定义为Spring管理的bean,否则无法进行属性注入
      • application.yaml(冒号)

    SpringBoot整合第三方技术

    • 掌握整合思想

    • 框架之所以好用,就是因为它有很多默认配置,省了功夫

    • 整合JUnit

      • 1、导入测试对应的starter
      • 2、测试类使用@SpringBootTest修饰
      • 3、使用自动装配的形式添加要测试的对象
      • 出现的小问题:
        • 引导类和测试类要放在同一个包下
          • 或者在测试类的注解上添加引导类的信息
            • @SpringBootTest(classes = Springboot04JunitApplication.class)
              
    • 整合MyBatis

      • 1、创建新模块,选择Spring初始化,并配置模块相关基础信息
      • 2、选择当前模块需要使用的技术集(SQL下的MyBatis Framework、MySQL Driver)
      • 3、数据库连接的相关信息写入配置文件,application.yml文件
      • 4、定义数据层接口与映射配置,xxxDao和@Mapper
        • 数据库SQL映射需要添加@Mapper才能被容器识别到
      • 5、测试类中注入dao接口,测试功能,@Autowired
      • 出现的小问题:
        • 1、pom.xml文件里报错“Cannot resolve com.mysql:mysql-connector-j:unknown”
          • 解决:依赖里加上版本号后刷新 
        • 2、http://t.csdn.cn/xCtuU
    • 整合MyBatis-Plus

      • MyBatis-Plus和MyBatis区别
        • 1、导入坐标不同
        • 2、数据层实现简化        
      • 步骤:
        • 1、手动添加SpringBoot整合MyBatis-Plus的坐标,可以通过mvnrepository获取 
          1. <dependency>
          2. <groupId>com.baomidougroupId>
          3. <artifactId>mybatis-plus-boot-starterartifactId>
          4. <version>3.3.1version>
          5. dependency>
        • 2、定义数据层接口与映射配置,继承BaseMapper
        • 3、其他同SpringBoot整合MyBatis。。。
    • 整合Druid

      • 1、导入Druid对应的starter
      • 2、根据Druid提供的配置方式进行配置
      • 3、。。。
    • 基于SpringBoot的SSMP整合案例

      • 1、实体类开发:使用Lombok快速制作实体类
        • lombok,一个java类库,提供了一组注解,用于简化POJO实体类开发
          1. <dependency>
          2. <groupId>org.projectlombokgroupId>
          3. <artifactId>lombokartifactId>
          4. dependency>
      • 2、Dao开发:整合MyBatisPlus,制作数据层测试类
        • 导入MyBatisPlus和Druid对应的starter
          1. <dependency>
          2. <groupId>com.baomidougroupId>
          3. <artifactId>mybatis-plus-boot-starterartifactId>
          4. <version>3.4.3version>
          5. dependency>
          6. <dependency>
          7. <groupId>com.alibabagroupId>
          8. <artifactId>druid-spring-boot-starterartifactId>
          9. <version>1.2.6version>
          10. dependency>
        • 配置数据源与MyBatisPlus对应的基础配置,application.yml配置文件

        • 继承BaseMapper并指定泛型

        • 制作测试类测试结果 

        • 为方便调试可以开启MyBatisPlus的日志

          • log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
        • 分页功能

            1. @Test
            2. void testGetPage(){
            3. IPage page=new Page(1,5);
            4. bookDao.selectPage(page,null);
            5. }
          • IPage对象中封装了分页操作中的所有数据(数据、当前页码值、每页数据总量、最大页码值 、数据总量)

          • 分页操作是在MyBatisPlus的常规操作基础上增强得到,内部是动态的拼写SQL语句,因此需要增强对应的功能,使用MyBatisPlus拦截器实现

          • 使用LambdaQueryWrapper对象,把所有查询操作封装成方法调用

      • 3、Service开发:基于MyBatisPlus进行增量开发,制作业务层测试类
        • 使用MyBatisPlus提供有业务层通用接口(IService)与业务层通用实现类(ServiceImpl)
        • 在通用类基础上做功能重载或功能追加
        • 注意重载时不要覆盖原始操作,避免原始提供的功能丢失
      • 4、Controller开发:基于Restful开发,使用PostMan测试接口功能
      • 5、Controller开发:前后端开发协议制作
        • 设计表现层返回结果的模型类,用于后端与前端进行数据格式统一,也称为前后端数据协议
          1. @Data
          2. public class R
          3. private Boolean flag;
          4. private Object data;

      • 6、页面开发:基于VUE+ElementUI制作,前后端联调,页面数据处理,页面消息处理
        • 列表、新增、修改、删除、分页、查询
        • 前后端分离结构设计中页面归属前端服务器
        • 单体工程中页面放置在resources目录下的static目录中(建议执行clean)
      • 7、项目异常处理
      • 8、按条件查询:页面功能调整、Controller修正功能、Service修正功能
      • 项目结构:
        • 1、pom.xml:配置起步依赖
        • 2、application.yml:设置数据源、端口、框架技术相关配置
        • 3、dao:继承BaseMapper, 设置@Mapper
        • 4、dao测试类
        • 5、service:调用数据层接口或MyBatis-Plus提供的接口快速开发
        • 6、service测试类
        • 7、controller:基于Restful开发,使用Postman测试跑通功能
        • 8、页面:放置在resources目录下的static目录中
  • 相关阅读:
    优秀的项目经理需要具备哪些能力?很关键
    JAVA毕业设计酒店管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库
    基于java+springboot+mybatis+vue+elementui的眼镜商城系统
    <wx-open-launch-weapp>微信公众号H5激活微信小程序躺坑日记
    Java 简易版王者荣耀
    ROS C++程序终止/结束进程&& 多线程终止运行程序
    stable-diffusion-webui官方版本地安装教程
    互联网常见34个术语解释
    java 设计模式
    Groovy之列表操作
  • 原文地址:https://blog.csdn.net/weixin_72052233/article/details/130660999