Spring框架-----ioc

基本概念

Spring 是一个轻量级的,IOC和AOP的一站式Java 开发框架,是为了简化企业级应用开发而生的

轻量级:框架核心模块体积小

IOC:Inversion of Control(控制反转)把创建对象的控制权反转给Spring框架管理

以前我们程序中需要对象时都是程序员自己进行新建

AOP:Aspect Oriented Programming面向切面编程

将程序中一些公共的非业务的代码进行分离提取,然后在业务代码执行时,把这些非业务代码横切进入执行,这使用了动态代理机制实现,业务代码在不显示的调用时会通过代理对象调用非业务对象

一站式:除了核心的功能之外,还对数据访问层和web层都进行了封装

spring框架的搭建

1.创建一个普通的moven工程

 2.导入spring框架最基础的jar包(在pom.xml中导入jar包,完成后可以在External Libraries中查看到导入的6个jar包)

 3.在resorce中创建一个文件,在该文件中对spring框架进行最基础的配置(配置中xsd文件对该配置文件中可以编写的类进行限制)

 4.创建你的java程序的基本结构,例如在以下代码中在java下创建model包,在其中创建一个实现类Admin,并在实现类中定义相应的方法和变量,并重写其中的get,set,有参构造方法(重写有参构造方法是必须重写无参构造方法),Admin类的创建,将用于后续对spring框架功能的测试

5.继续我们创建相应的包test,在该包中创建相应的测试类对spring框架的功能进行测试(如下图所示,我们创建了相应的测试类,但在该类中所写的代码为我们为学习spring前使用相应实现类时需要先创建类的对象,然后通过类的对象调用类中的方法)

6.如果我们需要spring框架对我们创建的实现类进行管理,我们需要在spring。xml中对我们所要管理的类进行配置(下面代码展示的配置中id需要我们自己进行命名,class需要写入我们所要管理的类的全类名)

7.完成相应的配置后,我们就可以在测试类中通过spring框架进行调用配置后的实现类并使用

id 属性需要我们自主进行命名,即是我们对该类创建对象的名称,class属性指我们需要操作的类的全名   
使用 bean标签操作需要spring管理的类的,利用getBean可以获得spring生成的对象  
scope属性配置的是bean的作用域(范围)     
scope="singleton" 默认取值  单例的   在spring框架启动时就创建对象,只会创建一次    
scope="prototype" 原型的(多例的)   在spring每次获得对象时都会创建一个对象

Spring bean 管理

基于xml生配置的方式(介绍scope,运行结果为当选择原型的时候,创建的两个Admin对象输出的结果) 

依赖注入 

IOC指的是让spring对象创建对象,创建对象的同时还有一个动作称为依赖注入 依赖注入是指在创建类对象时为对象的属性赋值
两种方式
1.通过属性注入(属性的set方法)

 2.通过构造方法注入

8.再次对Java程序进行扩展,创建新的包service和dao包,模拟后端程序与数据库进行交互

9.分别在对应的包里面创建相应的类

10.在adminService类中创建adminDao类的对象,并重写set和get方法

11.在xml文件中将类配置给spring进行管理,再对其进行依赖注入

12,在测试类中进行执行

 注解方式实现:

13.开启注解扫描

 14.在需要spring管理的类上方加上注解标签即可实现spring对类的管理与依赖注入

15.使用spring进行注入时,注入的类也必须被spring管理(例如使用注解标签对类AdminDao进行注入,AdminDao也必须被注解,即被spring管理)

16.对于@Autowired注解标签

@Autowired注解可以使用在属性或set方法前,当写在属性前时,我们就不需要在写该属性的set方法,对于该注解标签所标注的属性,一般要求传入的值不为null,如果我们想传入空值,必须设置@Autowired注解标签的require属性为false

@resource的用法与@Autowired类似

我们进行一些演示

 对于@Autowired注解的注入,我们有两种不同的注入方式

方法一:通过属性的类型进行查找,即是如上述代码所演示的,我们使用类型+命名的方式查询到对应的类,然后进行注入

方法二:我们通过对象的名字进行查找,需要用的相应的注解标签@Qualifier,同时我们也需要在对应类中进行命名

 

17.对于xml和注解两种方式进行spring管理的比较 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值