Spring核心知识概述

目录:
1. IOC理论
2. IOC创建对象的方式
3. Spring配置
4. 依赖注入
5. Bean的自动装配
6. 使用注解开发
7. 使用纯java配置Spring
8. Spring实现AOP
9. Spring整合MyBatis

正文:

  1. IOC理论
  2. 将对象的控制选择权交给用户,程序员只管使用

  3. IOC创建对象的方式

  4. 无参构造(默认)
  5. 有参,序号传参 index
  6. 有参,值类型传参 type
  7. 有参,变量名字传参 name

  8. Spring配置

  9. alias别名
  10. Bean标签配置
  11. import导入多个配置文件

  12. 依赖注入

  13. 构造器注入
  14. Set方式注入【重点】
  15. 普通值注入(使用value)
  16. Bean注入(使用ref)
  17. 数组注入
  18. list集合注入
  19. map集合注入
  20. Set集合注入
  21. 空值注入
  22. Properties配置注入
  23. 扩展方式
    注意:P命名和C命名不能直接使用,需要导入约束条件
    xmlns:c=”http://www.springframework.org/schema/c”
    xmlns:p=”http://www.springframework.org/schema/p”
  24. P命名空间注入(可以直接注入属性)Property(对应Set注入)
  25. C命名空间注入(注入有参构造属性)Construct-args(对应构造器注入)

  26. Bean的自动装配

  27. 在Spring中有三种装配方式
    1)在xml中显式地配置
    2)在java中显式地配置
    3)隐式地自动装配bean(重要)
  28. autowire = “byName”
  29. autowire = “byType”
  30. 使用注解实现自动装配
  31. @Autowired 搭配 @Qualifier(value=”xxx”) 来使用
  32. @Resource(name=”xxx”)

  33. 使用注解开发
    注意:使用注解开发必须保证AOP的包导入,并且允许注解

  34. Bean标签
  35. @Component
  36. 属性注入
  37. @Value
  38. @Component衍生注解(功能一样,都是装配到Bean)
  39. dao层 【@Repository】
  40. service层【@Service】
  41. controller层【@Controller】
  42. 作用域
  43. @Scope

  44. 使用纯java配置Spring

  45. @Configuration
  46. @ComponentScan

  47. Spring实现AOP
    1)使用原生的Spring API接口
    2)使用自定义类
    3)使用注解

  48. 切入点表达式

  49. 作用:知道对哪个类里面的哪个方法进行增强
  50. 语法:execution([权限修饰符] [返回类型] [类全路径] 方法名称)
  51. 其中,返回类型可以省略
  52. 举例:
    1.对com.pushihao.dao.UserDao类里的add进行增强
    execution( com.pushihao.dao.UserDao.add(..))
    2.对com.pushihao.dao.UserDao类里的所有方法进行增强
    execution(
    com.pushihao.dao.UserDao.(..))
    3.对com.pushihao.dao包里的所有类,类里面的所有方法进行增强
    execution(
    com.pushihao.dao..(..))

  53. Spring整合MyBatis
    第一种方式:

  54. 在Spring配置文件中编写数据源,使用org.springframework.jdbc.datasource.DriverManagerDataSource
  55. 配置sqlSessionFactory的Bean对象,注入数据源,并在其中绑定MyBatis配置文件
  56. 配置sqlSessionTemplate的Bean对象,其实就是MyBatis的sqlSession对象
  57. 给自己创建的接口编写一个实现类,并在Spring中配置一个Bean对象
  58. 测试使用
    第二种方式:
  59. 在Spring配置文件中编写数据源,使用org.springframework.jdbc.datasource.DriverManagerDataSource
  60. 配置sqlSessionFactory的Bean对象,注入数据源,并在其中绑定MyBatis配置文件
  61. 给自己创建的接口编写一个实现类,继承SqlSessionDaoSupport类,就可以直接调用其中的getSqlSession方法。在Spring中配置一个Bean对象,为父类注入SqlSessionFactory
  62. 测试使用

事务管理(要成功都成功,要失败都失败):
– 声明式事务: 使用AOP切入,自动管理
– 编程式事务: 需要在代码中进行事务的管理

Original: https://www.cnblogs.com/psh1024/p/15931913.html
Author: IT-Small-White
Title: Spring核心知识概述

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/569303/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Docker RabbitMQ 镜像集群

    环境搭建: Docker启动3个RabbitMQ,第一个MQ为主节点,同时指定 RABBITMQ_ERLANG_COOKIE。 后面两个镜像为第一个MQ的节点,RABBITMQ_E…

    Java 2023年6月9日
    073
  • [nginx] nginx源码分析–内存管理

    nginx的内存,都是内存池管理,创建一个内存池就malloc一块内存出来. 两个重要的地方会新建内存池, 一个新连接建立的时候, 一个是request创建的时候. 在内存池里申请…

    Java 2023年5月30日
    067
  • 《人性的弱点》关键结论

    原则一:不要批评、指责或抱怨任何人。 原则二:请不要吝啬发自内心的、不做作的赞美。 原则三:诉诸对方的内在需要。 原则四:真的喜欢别人。 原则五:你,一笑值千金。 原则六:记住对方…

    Java 2023年6月8日
    053
  • Java开发学习(九)—-IOC之核心容器

    这里所说的核心容器,大家可以把它简单的理解为 ApplicationContext,前面虽然已经用到过,但是并没有系统的介绍过,接下来咱们从以下几个问题入手来下容器的相关知识: 如…

    Java 2023年5月29日
    072
  • File类及文件夹的完整复制

    File类 在实现IO流对文件处理的时候,有一个类是一定要学习的,那就是File类 File类的父类是Object,所以不能完成文件的读写操作 file对象代表文件和目录路径所在的…

    Java 2023年6月9日
    069
  • MySQL服务器启动失败的问题

    MySQL服务器启动失败的问题 在启动mysql服务的时候失败了使用 mysqld –console这个命令查看一下日志信息,查询到如下的报错情况: [ERROR] Can’t …

    Java 2023年6月15日
    082
  • 基本的Dos命令

    ### 打开cmd的几种方&#x5F0F…

    Java 2023年6月8日
    082
  • Java是编译型语言还是解释型语言

    Java是编译型语言还是解释型语言 答案:java既是编译型语言,也是解释型语言。 你可以说它是编译型的。因为所有的Java代码都需要经过javac编译为.class文件,但主要是…

    Java 2023年6月13日
    052
  • 红队样本分析

    钓鱼木马 起因: 攻击人员冒充HR,并发送压缩包引导目标上线 压缩包内容: 双击打开后释放7zUpdate.exe文件,并向C2地址 82.156.168.220:443(Ubun…

    Java 2023年6月6日
    084
  • 干掉 PowerDesigner,这款数据库设计神器真的绝了!!!

    最近在造轮子,从 0 到 1 的那种,就差前台的界面了,大家可以耐心耐心耐心期待一下。其中需要设计一些数据库表,可以通过 Navicat 这种图形化管理工具直接开搞,也可以通过一些…

    Java 2023年6月9日
    080
  • java1

    1. 自我介绍2. 讲一件你印象最深刻的事没事怎么解决的3. JAVA垃圾回收机制怎么工作的4. AOP是怎么实现的,有几种方式,分别说说5. TCP/UDP的区别是什么,怎么实现…

    Java 2023年5月29日
    073
  • Java Iterator(迭代器)小笔记

    Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList和 HashSet 等集合。Iterator 是 Java 迭代器最简单…

    Java 2023年5月29日
    094
  • 细讲红黑树

    写在前面 红黑树也是一棵二叉查找树,既然有了AVL树为什么还需要红黑树呢? 之前在了平衡二叉树AVL实现中讲到了为什么使用平衡二叉树AVL( 解决二叉查找树退化为类似链表的问题),…

    Java 2023年6月5日
    084
  • Redis分布式锁

    SETNX命令 将 key 的值设为 value,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作。SETNX 是SET if Not eXis…

    Java 2023年6月6日
    065
  • 差分数组入门

    差分数组 什么是差分数组? 差分数组:差分数组就是原始数组相邻元素之间的差。 其实差分数组是一个 辅助数组,从侧面来表示给定某一数组的变化,一般用来对数组进行区间修改的操作。 比如…

    Java 2023年6月15日
    072
  • SpringBoot自动装配

    SpringBoot是对Spring的一种扩展,其中比较重要的扩展功能就是自动装配:通过注解对常用的配置做默认配置,简化xml配置内容。本文会对Spring的自动配置的原理和部分源…

    Java 2023年6月8日
    096
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球