Spring概述和IOC(xml配置文件)

Spring概念

(1)Spring是开源的轻量级框架
(2)Spring核心主要分为两部分:
(1)aop:面向切面编程,扩展功能不是修改源代码实现。
(2)IOC:控制反转。
比如有一个类,在类里面有方法(不是静态方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类的过程,需要new出来对象。而控制反转就是把创建对象不是通过new方式实现,而是交给spring配置创建类对象。
(3)Spring是一站式框架
Spring是在javaee三层结构中,每一层都提供不同的解决技术:
web层:SpringMVC
service层:spring的IOC
dao层:Spring的jabcTemplate

IOC底层原理

(1)以前的方式
在这里插入图片描述
(2)调优后的方式
在这里插入图片描述

IOC案例

(1)导入jar包
做spring基本功能,只需要导入Beans、Core 、Context、SpEL最基本的jar包即可。
导入支持日志输出的jar包:log4j、commons-logging
(2)创建类,在类里边创建方法
在这里插入图片描述
(3)创建spring配置文件(是schema约束),配置创建类
spring核心配置文件和名称不是固定的,建议放到src下面
在这里插入图片描述
(4)写代码测试对象创建
在这里插入图片描述

解决配置文件没有提示的问题

spring引入schema约束,把约束文件引入到eclipse中
(1)复制约束路径

Spring的bean管理(xml配置文件方式)

bean实例化(创建对象)的方式

在spring里面通过配置文件创建对象的过程就是bean实例化
第一种使用类的无参构造创建(常用方式)
在这里插入图片描述
如果类中没有无参构造(创建了有参构造)会出现异常

第二种使用静态工厂创建
在类里面创建静态方法,返回类对象
(1)创建类,创建静态方法
在这里插入图片描述
(2)通过配置文件得到对象
代码在上班IOC案例:
在这里插入图片描述
(3)测试:
在这里插入图片描述

第三种使用示例工厂创建
创建不是静态的方法,返回类对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Spring的bean管理(注解)

注解写法:@注解名称(属性名称=属性值)
注解使用:注解可以使用在类上边,方法上边,属性上边

准备实现步骤:

(1)导入注解jar包:spring-aop.jar
(2)创建包,里面创建类,写一个方法
(3)创建spring的配置文件,引入约束
前边ico基本功能,引入的是beans约束
要使用注解,还需要引入context约束
在这里插入图片描述
(5)开启注解扫描
在这里插入图片描述

注解创建对象

在创建对象的类上边加注解
在这里插入图片描述
测试:
在这里插入图片描述
创建对象的注解
功能其实是一样的:
(1)@Component:web层
(2)@Controller:业务层
(3)@Service:业务逻辑层(service)
(4)@Repository:数据访问层(dao)

创建对象是单实例和多实例
在这里插入图片描述

注解注入属性

需求:创建service类和dao类,在service中得到dao的对象
实现步骤:
(1)创建dao类,并且写入注解
在这里插入图片描述
(2)创建service,得到dao对象
第一种:
自动装配:根据类名找到类对应的对象,和value中定义的名称没什么关系
在这里插入图片描述
在这里插入图片描述
(3)测试
在这里插入图片描述
配置文件中还是开启扫描,上边有,这里不再写了

第二种(只有这里不同,其他地方都一样):
在这里插入图片描述

注解和配置文件混合使用注入

dao中的类没有注解,service中注解name直接使用配置文件中的id(在配置文件中创建对象)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

bean标签的常用属性

在这里插入图片描述

属性注入

  创建对象的时候,向类里面的属性里面设置值

属性注入的方式

这是java代码的方式,在spring中只支持前面两种方式,不支持第三种方式。
在这里插入图片描述
1、有参构造注入案例
在这里插入图片描述
在这里插入图片描述

2、使用set方法注入案例

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

注入对象类型的属性

案例:创建service类和dao类,在service中得到dao的对象。
(1)创建service类,把dao作为类型属性,并生成set方法
在这里插入图片描述
(2)创建dao类
在这里插入图片描述
(3)通过配置文件得到dao和service 的对象
在这里插入图片描述
(4)创建测试类测试结果
在这里插入图片描述

P(可以是任意名称)名称空间注入

引入名称空间:
在这里插入图片描述

案例:
在这里插入图片描述
在这里插入图片描述

复杂类型属性注入(属性类型为list,数组等类型)

1、数组
2、list集合
3、map集合
4、properties类型

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

IOC和DI的区别

在这里插入图片描述

Spring整合Web项目的原理

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值