框架合集(Mybatis,Spring,SpringMVC,Springboot):2023.12.13-12.17

48 阅读7分钟

一、MyBatis

mybatis中文官网:MyBatis中文网

瑞哥笔记:Mybatis快速入门 - 飞书云文档 (feishu.cn)

1.出现引入SqlSession爆红:解决IDEA maven项目中org.apache.ibatis.io.Resources爆红的原因及解决_ibatis报红-CSDN博客

2.mysql进入:mysql -u root -p

启动(必须以管理员运行cmd):net start mysql

3.如果想要实现数据库字段和java类的字段自定义(而非驼峰命名法),可以使用,而且对应Mapper文件的resulType处也应改写成resultMao,具体百度。(瑞哥在mybatis视频第三个中间讲的)

4.逆向工程生成,下面的插件:

image.png

二、Spring

1、Spring 概念

  • 1、Spring 是轻量级的开源的 JavaEE框架
  • 2、Spring 可以解决企业应用开发的复杂性
  • 3、Spring 有两个核心部分: IOC和Aop (1) IOC::控制反转,把创建对象过程交给 Spring 进行管理 (2)Aop: 面向切面,不修改源代码进行功能增强
  • 4、Spring 特点 (1)方便解耦,简化开发 (2)Aop编程支持 (3)方便程序测试 (4)方便和其他框架进行整合 (5)方便进行事务操作 (6)降低API开发难度

image.png

2、IOC容器

(1)概念和原理

1、什么是 IOC

(1)控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理

(2)使用 IOC目的:为了合度降低耦合度

2、IOC 底层原理: xml解析、工厂模式、反射

画图讲解 IOC 底层原理:

image.png

3、loc(接口)
  • 1、IOC思想基于 IOC 容器完成,IOC 容器底层就是对象工厂
  • 2、Spring 提供 IOC容器实现两种方式: (两个接口)

(1)BeanFactory: IOC容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用加载配置文件时候不会创建对象,在获取对象(使用) 才去创建对象;

(2) ApplicationContext:BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人员进行使用,加载配置文件时候就会把在配置文件对象进行创建。(更优)

  • 3、ApplicationContext 接口有实现类:(CTRL+H)(下面那个实现类更优)

image.png

4、l0C操作 :Bean 管理

1、什么是 Bean 管理? Bean 管理指的是两个操作

  • Spring 创建对象
  • Spirng注入属性

2、Bean 管理操作有两种方式

  • (1)基于 xml配置文件方式实现
  • (2)基于注解方式实现
(1)基于xml方式创建对象

image.png

(2)基于xml方式创建属性

(2.1)使用set方法进行属性注入

类文件: image.png xml文件 image.png (2.2 )通过有参构造函数进行属性注入

image.png xml文件:

image.png (2.3)set方式的简化:p名称空间注入

image.png (2.4)一些特殊符号的注入

image.png (2.5)注入属性-外部bean

image.png xml文件: image.png (2.6)注入属性-内部bean和级联赋值

内部bean采用嵌套赋值 image.png

image.png (2.7)注入集合属性

image.png xml文件: image.png

image.png 在集合里面注入对象类型: image.png (2.8)把集合注入部分提取出来:

image.png 下面的bookList就是可以公共使用的部分了 image.png

(2.9)工厂bean

1、Spring 有两种类型 bean,一种普通 bean,另外一种工厂 bean :FactoryBean

  • 普通 bean:在配置文件中定义bean 类型就是返回类型
  • 工厂 bean:在配置文件定义 bean 类型可以和返回类型不一样

image.png

image.png

(3)bean的作用域
  • 在 Spring 里面,设置创建 bean 实例是单实例还是多实例
  • 在 Spring 里面,默认情况下,bean 是单实例对象

(地址相同即为单实例对象) image.png scope属性设置了是否是单实例/多实例 image.png

image.png

(4)bean的生命周期

image.png

(5)自动装配

1、什么是自动装配?根据指定装配规则(属性名称或者属性类型),Spring 自动将匹配的属性值进行注入。(以上写Properties的都叫手动装配) autowire属性可以实现::(1)根据名称(2)根据类型 image.png

(6)管理外部属性文件

1、直接配置数据库信息 (1)配置德鲁伊连接池 (2)引入德鲁伊连接池依赖ir 包 2、引入外部属性文件方式(更便捷,健壮性) image.png

image.png

image.png image.png

(7)使用注解方式配置属性

1、什么是注解

  • (1) 注解是代码特殊标记,格式: @注解名称(属性名称=属性值,属性名称=属性值..)
  • (2) 使用注解,注解作用在类上面,方法上面,属性上面
  • (3) 使用注解目的:简化 xml 配置

2、Spring 针对 Bean 管理中创建对象提供以下四个常用注解:

  1. @Component1
  2. @Service
  3. @Controlleru
  4. @Repository4

注意!!上面四个注解功能是一样的,都可以用来创建 bean 实例

3、基于注解方式实现属性注入

  1. @AutoWired:根据属性类型进行自动装配
  2. @Qualifier: 根据属性名称进行注入
  3. @Resource: 可以根据类型注入,可以根据名称注入
  4. @Value: 注入普通类型属性

4、完全注解开发

image.png 测试类的写法稍有不同 image.png

3、AOP

4、JdbcTemplater

5、事务管理

6、Spring5新特性

Spring MVC

蓝色框框是SpringMVC做的事情 image.png

Springboot

image.png

IDEA里面设置UTF-8编码

image.png

重点!!!springbooot配置文件加载位置:优先级由高到低,所有不同优先级配置形成互补配置。

激活不同的配置文件(properties方式) image.png 激活不同的配置文件(yml方式) image.png 激活不同的配置文件(命令行方式) image.png 激活不同的配置文件(虚拟机方式) image.png 配置文件的加载位置 image.png springbooot外部配置文件加载位置:(优先级从高到低) image.png

springboot的yml/properties配置文件可以配置什么?怎么配置?

Spring Boot Reference Guide 这篇文章

自动配置原理

image.png

自动配置类报告:在yml文件或者properties文件中写debug=true,便可以打印报告,告知现在哪些自动配置类启用了。
日志

常用框架

image.png 最终选择:日志门面: SLF4J; 日志实现: Logback;(Springboot也是这样选择的)

如何让系统中所有的日志都统一到slf4j?

  • 1、将系统中其他日志框架先排除出去;
  • 2、用中间包来替换原有的日志框架;
  • 3、我们导入slf4j其他的实现

yml文件里面可以配置:

image.png

image.png

image.png

image.png

image.png

自己指定配置文件:类路径下放置即可 image.png

报错解决合集:

1.注意tomcat和SringMVC乃至Spring之间有版本依赖关系,注意版本,否则将导致冲突依赖。 2.settings文件报错: blog.csdn.net/panjican/ar… blog.csdn.net/weixin_4705…

3.Springboot测试类必须加上@RunWith(SpringRunner.class)注解!!!

@RunWith(SpringRunner.class)  作用:表明Test测试类要使用注入的类,比如@Autowired注入的类,有了@RunWith(SpringRunner.class)这些类才能实例化到spring容器中,自动注入才能生效

官方点:

@RunWith 注解是JUnit测试框架中的一种注解,用于指定测试类的运行器(Runner)。JUnit是一个用于编写和执行单元测试的Java测试框架,而运行器(Runner)则是JUnit框架的一部分,它负责执行测试类中的测试方法并提供测试报告。

具体来说,@RunWith 注解用于告诉JUnit使用哪个运行器来执行当前测试类中的测试方法。在你的问题中,你提到了 @RunWith(SpringRunner.class),这是用于在Spring应用程序中运行单元测试的常见用法。

SpringRunner 是JUnit 4中提供的一个运行器,它与Spring框架集成,可以帮助你在测试中加载和配置Spring应用上下文,从而能够进行集成测试。通常,你会在Spring Boot应用程序中使用 @RunWith(SpringRunner.class) 注解来执行单元测试,以便在测试期间使用Spring容器和Spring的依赖注入等功能。

4.springboot测试类报错:java.lang.Exception: No runnable methods java.lang.Exception: No runnable methods - 龙凌云端 - 博客园 (cnblogs.com)

image.png