spring-day01

17 篇文章 0 订阅
12 篇文章 0 订阅

spring概念

1.spring是开源的轻量级的框架
轻量级:框架的使用不需要依赖许多其他的框架直接使用。
2.spring核心主要两部分:

  • aop:面向切面编程,扩展功能不是修改源代码实现

  • ioc:控制反转
    比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象
    把对象的创建不是通过new方式实现,而是交给配置创建类对象
    3.spring是一站式框架

  • web层:springMVC

  • service层:spring的IOC

  • dao层:spring的jdbcTemplate

spring的IOC的操作

1.把对象的创建交给spring进行管理
2.ioc操作两部分
(1)ioc的配置文件方式
(2)ioc的注解方式

IOC底层原理

  1. ioc底层原理使用技术
    (1)xml配置文件
    (2)dom4j解析xml
    (3)工厂设计模式
    (4)反射
    ioc-底层过程
    图1-1.IOC-底层过程
    在这里插入图片描述
    图1-2.IOC-操作原理

IOC入门案例

第一步   导入jar包

在这里插入图片描述
图1-3.jar包特点:都有三个jar包
在这里插入图片描述
图1-4.spring核心模块
所以在做spring基本功能的时候,导入四个核心jar包就可以了
在这里插入图片描述
图1-5.所有需要导入的jar包(包括支持日志输出的jar包)
第二步  创建类,在类里面创建方法
在这里插入图片描述
第三步   创建spring配置文件,配置创建类
(1)spring核心配置文件名称和位置不是固定的
 建议放到src下面,官方建议applicationContext.xml
(2)引入schema约束
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找约束要直接在html文件中找
(3)配置对象创建
在这里插入图片描述
第四步   写代码测试对象创建
在这里插入图片描述
结果如下:
在这里插入图片描述

配置文件没有提示问题

首先复制xml文件中的约束中最后的地址:http://www.springframework.org/schema/beans/spring-beans.xsd
在这里插入图片描述
在这里插入图片描述
不要忘记,要把key type 改成Schema location,最后点击OK按钮。但是这样仅仅是有关于beans的代码提示,如果有其他约束还需要添加,还有一种方法就是在有网络的时候把所有约束全部学一遍,这样就会缓存下载,在没有网络的时候也可以有代码提示。

bean实例化的三种方式

第一种 使用类的无参构造(重点)
在这里插入图片描述
类里面没有无参构造,出现异常
在这里插入图片描述
第二种 使用静态工厂创建
(1)创建静态的方法,返回类的对象(一般不用)
xml配置文件
在这里插入图片描述
Bean2类
在这里插入图片描述
工厂类
在这里插入图片描述
测试类
在这里插入图片描述
测试结果
在这里插入图片描述
第三种 是用实例工厂创建(一般不常用)
(1)创建不是静态的方法,返回类的对象
Bean3类
在这里插入图片描述
工厂类
在这里插入图片描述
配置文件
在这里插入图片描述
测试类
在这里插入图片描述
运行结果:
在这里插入图片描述

Bean标签常用属性

(1)id属性:起名称,id属性值名称任意命名
id属性值,不能包含特殊符号
根据id值得到配置的对象
(2)class属性: 创建对象所在类的全部路径
(3)name属性:功能和id属性一样,区别是id属性值不能包含特殊符号,但是name属性值里面可以包含特殊符号。
(4)scope属性:
singleton:默认值,单例
测试类+运行结果
地址一样
地址一样,说明默认的是单例
prototype:多例
配置文件
在这里插入图片描述
测试类+运行结果
在这里插入图片描述
地址不一样说明是多实例
request:创建对象,把对象放到request域里面
session:创建对象,把对象放到session域里面
golbalSession:创建对象,把对象放到globalSession域里面

属性注入

1、创建对象的时候,像向类里面属性里面设置值
2、属性注入的方式介绍(三种方式)
(1)使用set方法注入
(2)使用有参构造
(3)使用接口注入
在这里插入图片描述
3、在spring框架里面,支持前两种方式
(1)set方法
(2)有参数构造注入

使用有参数构造注入属性(不常用)

xml配置文件
在这里插入图片描述
PropertyDemo1类
在这里插入图片描述
测试类
在这里插入图片描述
结果如下:
在这里插入图片描述

使用set方法注入属性

Book类:

在这里插入图片描述
xml配置文件
在这里插入图片描述
测试方法:
在这里插入图片描述
结果如下:
在这里插入图片描述

注入对象类型属性(重点)

1、创建service类和dao对象
(1)在service得到dao对象
2、具体实现过程
(1)在service里面把dao作为类型属性
(2)生产dao类型属性的set方法
Dao类
在这里插入图片描述
service类
在这里插入图片描述
配置文件
在这里插入图片描述
运行结果:
在这里插入图片描述

p命名空间注入

标签里面的属性不能重复,若有重复可以使用冒号隔开
在这里插入图片描述
配置文件
在这里插入图片描述
person类
在这里插入图片描述
测试类
在这里插入图片描述
运行结果
在这里插入图片描述

注入复杂类型属性(会用)

person类
在这里插入图片描述
配置文件
在这里插入图片描述
测试类
在这里插入图片描述
测试结果
在这里插入图片描述

IOC和DI的区别

(1)IOC:控制反转,把对象创建交给spring进行配置(创建对象)
(2)DI:依赖注入,向类里面的属性中设置值(给对象的属性赋值,所以不能单独存在,必须现有对象才能给属性赋值)
(3)关系:依赖注入不能单独存在,需要在ioc基础之上完成操作。

Spring整合web项目原理

1、加载spring核心配置文件
在这里插入图片描述
(1)new对象,功能可以实现,效率很低
2、实现原理:把加载配置文件和创建对象过程,在服务器启动时完成
3、实现原理
(1)ServiceContext对象
(2)监听器
(3)具体使用:
(3.1)在服务器启动的时候,为每个项目创建一个ServletContext对象
(3.2)在ServletContext对象创建的时候,使用监听器可以监听到ServletContext对象在什么时候创建
(3.3)使用监听器监听到ServletContext对象的时间
(3.4)加载配置文件,根据配置文件创建配置对象
(3.5)把创建出来的对象放到ServletContext域对象里面(使用setAttribute方法)
(3.6)获取对象时,到ServletContext域得到(使用getAtrribute方法)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值