Spring学习-01 IOC

时间:2021-06-05 17:47:21   收藏:0   阅读:0

一、基本概念

1、什么是IOC?

IOC(Inversion of Control)即控制反转,是指将对象的创建交给Spring框架进行处理和管理,不需要我们进行手动的对象创建和管理。

2、什么是DI?

DI(Dependency Injection)即依赖注入,它是实现IOC的一种手段。

二、DI的实现方式

主要通过property标签进行属性注入,通过name属性指定需要注入的属性名,value指定需要注入的值

1、注入八大基本类型和String类型的属性时

技术图片

2、注入引用类型属性时,可以使用内部bean的形式进行属性注入

技术图片

除此之外,还可以使用级联赋值的方式:

技术图片

技术图片

3、注入数组类型属性时,需要使用到array标签和value标签

技术图片

4、注入List集合类型属性时,需要使用到list标签和value标签

技术图片

5、注入Map集合类型属性时,需要使用map标签和entry标签(通过entry标签的key和value属性进行key和value的设置)

技术图片

6、注入Set集合类型属性时,需要使用set标签和value标签

技术图片

 技术图片

技术图片

首先需要在xml配置文件中引入p命名空间

技术图片

基本使用语法:p:属性名=属性值,使用示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

   ........

   <!-- 进行属性注入,p:属性名=属性值 -->
   <bean id="humanBean2" class="spring.bean.animal.Human" p:name="Judy" p:age="34" p:pet-ref="tiger2">
   </bean>

   .......
</beans>

补充点:

技术图片

    1. byType:按照类型进行自动注入
    2. byName:按照名称进行自动注入

1、在bean标签中使用scope属性,可选值:

2、singleton和prototype的区别


1、@AutoWired:根据属性类型进行自动装配

如果出现多个符合的bean需要使用@Qualifier注解进行指定或者再要注入的bean中添加属性primary=true

注意:如果有多个相同的类型的bean存在,但是有一个bean的名称和注解修饰的属性名相同,就会按名称匹配而自动注入,而不会抛出多个bean匹配的异常。

技术图片

2、@Qualifier:更具属性名称进行注入,一般配合@Autowired一起使用

3、@Resource:可以根据类型注入,也可以根据名称注入(属于javax包而不属于spring本身带的注解)

默认优先根据名称查找并注入,没有指定name的话默认值是该注解修饰的属性名或setter方法名,如果名称无法找不到就会更根据类型进行查找并注入。

4、@Value:可以注入普通类型属性(八大基本类型 + String字符串类型)

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!