【Spring】控制反转、依赖注入、Bean管理

Spring框架概述

轻量级的、开源的JavaEE框架

解决企业应用开发的复杂性

Spring两个核心部分:IOC、AOP

​ IOC:控制反转(之前主动创建对象,现在Spring帮助我们创建对象)

​ AOP:面向切面编程(不修改源代码的情况下,功能增强)

特点

​ 方便解耦,简化开发

​ 方便集成其他框架

​ 方便对事务进行操作

IOC(控制反转)

读作“反转控制”(Inverse of Control)更好理解

这不是什么技术,而是一种 设计思想,就是将原本在程序中手动创建对象的控制权,交由 Spring 框架来 管理

正控:若要使用某个对象,需要自己去负责对象的创建

反控:若要使用某个对象,只需要从 Spring 容器中获取需要使用的对象, 不关心对象的创建过程,也就是把创建对象的控制权反转给了 Spring 框架.

如何用Spring实现IOC?通过下面两个操作来实现

  • Spring创建对象

  • Spring注入属性

实现的方式分为两种

  • 基于XML配置文件实现

  • 基于注解方式实现(常用)

1、基于XML方式

1.1 创建对象

①:在Spring配置文件中,使用bean标签,标签里面添加相应属性,就可以实现对象的创建
②:bean标签的属性
	id		给创建的对象赋予唯一标识
	class	要创建对象的全路径
	scope	创建的对象是单例的还是多实例的
		singleton:单例的:执行spring就创建对象,只创建一次
		prototype:原型的:使用getBean才会创建对象,可创建多次
③:创建对象默认执行无参构造方法(没有无参构造器会报错)
<bean id="student" class="com.ff.bean.Student"></bean>

1.2 注入属性

set方式注入

<!--通过set方法进行依赖注入-->
<bean id="student" class="com.ff.bean.Student">
    <!--使用property标签完成属性注入
        name:类里面属性名称
        value:向属性注入的值
    -->
    <property name="name" value="张三"></property>
    <property name="age" value="18"></property>
    <property name="list">
        <list>
            <value>1</value>
            <value>2</value>
            <value>3</value>
        </list>
    </property>
</bean>

构造器注入

<!--通过构造方法进行依赖注入-->
<bean id="student" class="com.ff.bean.Student">
    <constructor-arg name="name" value="张三"></constructor-arg>
    <constructor-arg name="age" value="18"></constructor-arg>
    <constructor-arg name="list">
        <list>
            <value>1</value>
            <value>2</value>
            <value>3</value>
        </list>
    </constructor-arg>
</bean>

2、基于注解方式

2.1 spring基于注解创建对象

① 引入依赖

② 开启组件扫描

<context:component-scan base-package="com.ff"></context:component-scan>

③ 在类上面添加注解(value可以不写,不写的默认值是类名首字母小写)

@Component		一般用于Bean层
@Service		一般用于service层
@Controller		一般用于web层
@Repository		一般用于dao层

2.3 基于注解注入属性

//注入对象
@Autowired		根据属性类型进行自动注入
@Qualifier		根据属性名称进行注入,但是要和Autowired一起使用
@Resources		可以根据类型、也可以根据名称(javax的包)
//注入普通数据类型
@Value			适用于普通类型
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值