spring入门(控制反转与依赖注入)

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

 

首先要理解什么是控制反转,和依赖注入。

概念对比:

                                        控制反转                       DI (dependency injection) 依赖注入

含义:

   把原理new对象的这种方式转换成了,spring通过反射创建对象的方式。

spring创建完的对象放到一个容器中,谁需要就给谁注入进去. ​

简单说:把创建对象和管理对象的权利交给spring

含义:就是给对象的属性设置值.

原来给对象的属性设置值: set方法给对象设置值 构造方法给对象初始化的时候设置值.

对象的创建

对象属性值的设置

控制反转:

1.创建对象的几种方式?

 构造方法
 静态工厂
 实例工厂

2.spring创建对象的范围

     问题: 每次获取对象的时候,spring是新创建一个对象还是始终给我们返回同一个对象?

              单例: 内存中只有一个对象,每次获取到该对象的地址值一样.

             多例:内存中的每个对象都是一个新的对象,他们的地址值都不同.

    答案: spring默认的情况下创建的对象都是单例的. (每次返回的对象都是同一个)

3.spring创建对象的生命周期

spring创建的对象什么时候创建,什么时候运行,什么时候销毁.?

                  1. 创建, 加载配置文件的时候

                  2. 运行,使用该对象的时候

                  3.销毁 ,spring的容器关闭的时候

依赖注入:

1.注入依赖的几种方式?

set方式设置属性
构造方式注入
p名称空间注入和c名称空间注入
复杂数据类型注入

常用注解:

注解名 作用

@Component 

@Component("abc")

默认的id是类名首字母小写

手动的指定了  <bean id="abc" class="xxxx">

@Controller 确定是表现层/控制层 使用Controller
@Service 业务逻辑使用 Service
@Repository dao持久层使用Repository

 @Autowired

自动注解

@Qualifier("id")   注入方式1:(根据的bean id值来指定)
@Value("#{son1}") 注入方式2:
 @Resource(name="son1") 注入方式3:jdk的注入

猜你喜欢

转载自blog.csdn.net/longyanchen/article/details/94409961