2021-05-24

本文详细介绍了Spring框架的入门步骤,包括配置Bean、原型与单例的区别、Bean生命周期及创建方式。讨论了数据源连接池的配置,如C3P0,并展示了Spring注解的使用,简化XML配置。此外,文章还涵盖了Spring的AOP概念,包括切点、通知类型以及动态代理的实现方式,最后探讨了JdbcTemplate在数据库操作中的应用。
摘要由CSDN通过智能技术生成

一、Spring的入门步骤

1、基本Spring配置

1、注入Spring包坐标
在这里插入图片描述

2、创建接口,和接口的实现类,就是创建Bean

在这里插入图片描述
在这里插入图片描述
3、创建配置文件

在这里插入图片描述

4、创建测试类通过GetBean()获取Bean

在这里插入图片描述

2、bean中prototype原型和singleton单例的区别作用

1、创建一个测试类
配置单元测试
在这里插入图片描述

在这里插入图片描述
结果显示,单例输出相同的对象地址,原型输出不同的对象地址
在这里插入图片描述

3、Bean不同的scode导致bean的创建时机不同(通过对象实现类无参构造器创建)

1、默认单例模式下通过无参构造器完成bean的创建(这时候bean是在加载配置文件时创建)
2、原型模式是在加载配置文件后,调用getBean()时创建
在这里插入图片描述

4、Bean的生命周期

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5、三种实例化创建bean的方式

1、默认权限名的无参构造器
2、通过静态工厂实现
3、工厂实例化

6、注入,将一个对象(或者对象的属性)注入到另一个对象中,

使用setter方法注入

在这里插入图片描述
在这里插入图片描述

p的命名空间方式注入
在这里插入图片描述
在这里插入图片描述
有参构造器注入
在这里插入图片描述
在这里插入图片描述

7、注入数据的三种数据类型(本质就是注入到Bean中初始化)

总结setter注入:
1、对象
对象的注入,是将上层对象注入到下层,其实就是在下层等于一个上层的对象,通过对对象的setter方法,将对象注入到下层的对象中,实现嵌套,将上层的对象的方法及下层的对象的方法,通过spring容器调用下层对象,将其一起输入结果
2、普通数据类型
普通的对象的私有属性,将使用setter方法初始化,将数据注入到当前对象的Bean中,和当前对象的方法一起输出
3、引用数据类型
4、集合数据类型
list集合:直接注入,可以定义值
在这里插入图片描述

map集合引用对象
定义一个类,类的属性有name,age将类注入到bean中,在将map注入到bean中,将定义在注入到map中
在这里插入图片描述

8、Bean配置的模块化,可以将bean的配置文件拆分,并将拆分的配置文件引入到主配置文件中

在这里插入图片描述
在这里插入图片描述

9、注入复习:

在这里插入图片描述

二、Spring相关API

1、Spring不同的加载容器

在这里插入图片描述

2、getBean()的不同获取方法(不需要强转)

在这里插入图片描述

三、Spring配置数据源

1、数据源连接池(C3P0,DBCP,BoneCP,Druid)

连接数据源,
实例化数据源,初始化数据源
归还数据源

2、手动创建数据源(连接池)

1、添加依赖,坐标
在这里插入图片描述
1、实例化数据源
2、驱动数据源连接数据库
3、设置数据源连接用户名,密码
在这里插入图片描述
通过拆分配置文件的方式,获取数据源
在这里插入图片描述

在这里插入图片描述

3、使用Spring来配置数据源

因为CombopooledDataSource是个接口对象,通过拆分配置文件思想**,(无参构造方法注入)**可将连接数据源的参数注入到Bean中,通过Spring的加载器容器获取Bean
在这里插入图片描述
在这里插入图片描述
加载外部的properties配置文件到Bean中
在这里插入图片描述
这样做的目的:
1、使用Spring加载容器,将连接数据库的参数,注入bean中,因为连接池接口就是个接口对象,及实现类,
2、将连接数据库的参数定义到properties配置文件中,在引入Bean中,注入的参数可以使用变量的方式,方便在固定的配置文件中修改参数数据

四、Spring注解

1、注解注入和XML文件注入的区别

implUserao
在这里插入图片描述
implUserService
在这里插入图片描述
配置扫描
在这里插入图片描述
调用
在这里插入图片描述
注解细节(往对象中注入,保持同意,区分大小写)
在这里插入图片描述
@Repository(“userDao”)====》 @Qualifier(“userDao”)(可以将Setterf方法去除)
在这里插入图片描述
可以将 @Qualifier(“userDao”)//使用id来注入的,,去除,让它根据数据类型自动注入
在这里插入图片描述
三种任选一种
在这里插入图片描述

2、属性值的注解注入(@Value(“属性值”))

在这里插入图片描述
其实这种方式的的注入,解决了,初始化问题(可以少掉Setter方法),也解决了对象间的依赖问题,很好的进行解耦

3、Value("${}")这是它最大的用处,可以操作变量

在这里插入图片描述

4、Spring的新注解**(当前只是我们自定义的源码,如何给第三方接口添加注解)**

例如:C3P0数据连接池,这个第三方的接口
目的,将我们的配置文件进行用注解的方式替代,做到配置文件的精简
1、非定义的Bean,第三方的接口
c3p0等
2、外部的加载配置文件,例如、;properties文件
在这里插入图片描述

3、注解扫描
<context:component-scan base-package=“com.it”/>
4、拆分的组件导入配置主配置文件中

在这里插入图片描述

这是前面3中的配置文件
在这里插入图片描述
将这些配置代码,使用新注解的方式,代替注入

新注解:
在这里插入图片描述
可以使用一个类,来管理注解,配置注解类
在这里插入图片描述
注解就是将代替所有的bean,并通过Spring容器处理,得到返回值

5、因注解配置类也存在代码多,可将配置类进行拆分

1、数据源的注解配置
在这里插入图片描述拆分后的模块注解类需要引入主注解类中加载
在这里插入图片描述
测试就不是加载.xml文件了,而是加载注解配置类
!在这里插入图片描述

6、Spring集成Junit

1、导坐标 Spring-test junit Spring-context
在这里插入图片描述

加载的是.xml文件
在这里插入图片描述
加载的是注解类的配置
在这里插入图片描述

五、Spring的AOP,面向切面的编程

1、将A功能结合到B功能 使用JDK的动态代理实现切面进入B功能
2、可以被增强的方法叫做连接点joinPoint
3、当你被增强了,就是个切入点**(既是一个切面)**
4、连接点连接的过程叫织入

1、 jdk的动态代理(基于接口的代理)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、CJLIB代理(基于父类的代理)

在这里插入图片描述

3、通过Spring来自动创建代理对象(自动查找切入点,判断代理方式,进行织入成切入点,形成切面)

在这里插入图片描述
在这里插入图片描述

4、基于XML的配置方式AOP开发

在这里插入图片描述
导入依赖
在这里插入图片描述
在这里插入图片描述
切点表达式
在这里插入图片描述
在这里插入图片描述

使用Spring集成Junit测试
在这里插入图片描述
通知的类型:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、抽取切点表达式:

在这里插入图片描述

6、基于注解的AOP开发

在这里插入图片描述
在切面类中编写通知
在这里插入图片描述
在xml配置文件中扫描
在这里插入图片描述
测试
在这里插入图片描述

在这里插入图片描述
注解的方式
在这里插入图片描述

六、JdbcTemplate模板

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值