一、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.逆向工程生成,下面的插件:
二、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开发难度
2、IOC容器
(1)概念和原理
1、什么是 IOC
(1)控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理
(2)使用 IOC目的:为了合度降低耦合度
2、IOC 底层原理: xml解析、工厂模式、反射
画图讲解 IOC 底层原理:
3、loc(接口)
- 1、IOC思想基于 IOC 容器完成,IOC 容器底层就是对象工厂
- 2、Spring 提供 IOC容器实现两种方式: (两个接口)
(1)BeanFactory: IOC容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用加载配置文件时候不会创建对象,在获取对象(使用) 才去创建对象;
(2) ApplicationContext:BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人员进行使用,加载配置文件时候就会把在配置文件对象进行创建。(更优)
- 3、ApplicationContext 接口有实现类:(CTRL+H)(下面那个实现类更优)
4、l0C操作 :Bean 管理
1、什么是 Bean 管理? Bean 管理指的是两个操作
- Spring 创建对象
- Spirng注入属性
2、Bean 管理操作有两种方式
- (1)基于 xml配置文件方式实现
- (2)基于注解方式实现
(1)基于xml方式创建对象
(2)基于xml方式创建属性
(2.1)使用set方法进行属性注入
类文件:
xml文件
(2.2 )通过有参构造函数进行属性注入
xml文件:
(2.3)set方式的简化:p名称空间注入
(2.4)一些特殊符号的注入
(2.5)注入属性-外部bean
xml文件:
(2.6)注入属性-内部bean和级联赋值
内部bean采用嵌套赋值
(2.7)注入集合属性
xml文件:
在集合里面注入对象类型:
(2.8)把集合注入部分提取出来:
下面的bookList就是可以公共使用的部分了
(2.9)工厂bean
1、Spring 有两种类型 bean,一种普通 bean,另外一种工厂 bean :FactoryBean
- 普通 bean:在配置文件中定义bean 类型就是返回类型
- 工厂 bean:在配置文件定义 bean 类型可以和返回类型不一样
(3)bean的作用域
- 在 Spring 里面,设置创建 bean 实例是单实例还是多实例
- 在 Spring 里面,默认情况下,bean 是单实例对象
(地址相同即为单实例对象)
scope属性设置了是否是单实例/多实例
(4)bean的生命周期
(5)自动装配
1、什么是自动装配?根据指定装配规则(属性名称或者属性类型),Spring 自动将匹配的属性值进行注入。(以上写Properties的都叫手动装配)
autowire属性可以实现::(1)根据名称(2)根据类型
(6)管理外部属性文件
1、直接配置数据库信息
(1)配置德鲁伊连接池
(2)引入德鲁伊连接池依赖ir 包
2、引入外部属性文件方式(更便捷,健壮性)
(7)使用注解方式配置属性
1、什么是注解
- (1) 注解是代码特殊标记,格式: @注解名称(属性名称=属性值,属性名称=属性值..)
- (2) 使用注解,注解作用在类上面,方法上面,属性上面
- (3) 使用注解目的:简化 xml 配置
2、Spring 针对 Bean 管理中创建对象提供以下四个常用注解:
- @Component1
- @Service
- @Controlleru
- @Repository4
注意!!上面四个注解功能是一样的,都可以用来创建 bean 实例
3、基于注解方式实现属性注入
- @AutoWired:根据属性类型进行自动装配
- @Qualifier: 根据属性名称进行注入
- @Resource: 可以根据类型注入,可以根据名称注入
- @Value: 注入普通类型属性
4、完全注解开发
测试类的写法稍有不同
3、AOP
4、JdbcTemplater
5、事务管理
6、Spring5新特性
Spring MVC
蓝色框框是SpringMVC做的事情
Springboot
IDEA里面设置UTF-8编码
重点!!!springbooot配置文件加载位置:优先级由高到低,所有不同优先级配置形成互补配置。
激活不同的配置文件(properties方式)
激活不同的配置文件(yml方式)
激活不同的配置文件(命令行方式)
激活不同的配置文件(虚拟机方式)
配置文件的加载位置
springbooot外部配置文件加载位置:(优先级从高到低)
springboot的yml/properties配置文件可以配置什么?怎么配置?
Spring Boot Reference Guide 这篇文章
自动配置原理
自动配置类报告:在yml文件或者properties文件中写debug=true,便可以打印报告,告知现在哪些自动配置类启用了。
日志
常用框架
最终选择:日志门面: SLF4J;
日志实现: Logback;(Springboot也是这样选择的)
如何让系统中所有的日志都统一到slf4j?
- 1、将系统中其他日志框架先排除出去;
- 2、用中间包来替换原有的日志框架;
- 3、我们导入slf4j其他的实现
yml文件里面可以配置:
自己指定配置文件:类路径下放置即可
报错解决合集:
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)