Spring的ioc容器更像是一个类的容器,帮助用户new出bean的实例,并进行管理。当用户需要使用时,只需要使用一个ApplicationContext的实现类来取出在容器中的类的实例。
这个容器的管理方式类似于map,其中每个bean实例都有一个id,用户根据id来获取bean实例。返回的实例都是object类型。
三种实例化bean的方法:
实例化bean容器的方法:
1、在类路径下寻找;
2、在绝对路径下寻找;
第二章 装配bean
使用类构造器来实例化bean实例 class属性指向需要的bean实例类
静态工厂方法实例化bean(简单工厂模式,抽象工厂方式,工厂方法模式)
对于静态工厂配置方法中的属性中有 class =类的静态工厂类
factory-method=创建bean类实例的方法
因为是静态工厂方法,方法是静态的,无需要创建出一个静态工厂类。
使用实例工厂方法模式(工厂方法模式)
首先创建一个非静态的工厂
1、声明工厂实例
2、利用工厂bean实例来创建类的实例
其中单独的创建出工厂bean的实例
然后使用factory-bean 和factory-method属性来创建类的实例。
bean的作用域
表示bean类在ioc容器中new出bean类的方法,是单例,还是非单例的。
单例的则会在bean容器中只保留一个实例
否则,会保留有多个实例。每当用户getBean时,都会new一个bean出来。
lazy-init延迟加载则是不是在初始化容器是就初始化实例,而是当使用时才初始化。
指定bean的初始化和销毁方法
init-method指定在初始化方法之前处理一些工作
destroy-method指定销毁类是执行的一些方法。
依赖注入:
1、使用构造器注入
2、使用setter方式注入
3、使用Field放到注入,主要是使用与Autowire方式。
分为自动装配和手工装配
手工装配方式有:
1>在xml文件中写配置
2>使用Autowire方式来注入
setter方式注入
<bean id=" " class="****">
<property name="" value =""></property>
<property name="" ref=""></property>
</bean>
通过构造函数注入:
通过参数类型;
<constructor-arg type="java.lang.String" >
<value>zhang</value>
</constructor-arg>
<consyructor-arg type="Integer">
<value>1</value>
</constructor-arg>
通过参数顺序:
<constructor-arg index=0 >
<value>zhang</value>
</constructor-arg>
<consyructor-arg index=1>
<value>1</value>
</constructor-arg>
使用注解的方式来注入函数:
第一步、需要引入context命名空间
第二步、引入对注解进行处理的处理器
<context:annotation-config>
@AutoWire按照类型进行注入,
如果类型不匹配在,则会抛出异常;该注解能应用与字段和属性的set方法上
当该注解应用于字段上时:(使用在set方法类似)
第一步、获取@Autowire字段的标准的类型
第二步、以该类型为基础,到容器中查找类型相同的实例
第三部、利用反射将该节点的实例赋给该变量
@Qualifier(“personDao”表示按照名称进行匹配)其中里面的名称与容器中的id的名称一致。
@Resource注解方式:
如果指定了按照名称标注,只能按名称注入
如果没有指定,则会退化到按类型注入
@Resource按照名称进行注入
自动装配(不推荐)
自动扫描,将classpath中的类加载到容器中
在spring中注解中Resource 和Autowire注解是用来注入变量值的
而@Repository ,@Service@Controller和@Component这些注解是用来扫描空间实例化类的注解。
通过扫描空间,将标注了@Component @Service @Controller @Responsitory等类加入到Spring容器中
<context:component-scan base-package=""></context:component-scan>其中base-package表示目录。
相关推荐
SPRING 笔记SPRING 笔记SPRING 笔记
spring笔记spring笔记spring笔记spring笔记spring笔记spring笔记
spring笔记spring基础笔记
spring笔记 狂神说
spring 初学 笔记 入门提示
达内,tarena,spring笔记,springPPT课件,达内spring笔记 spring的全套资料
spring入门笔记
尚硅谷Spring笔记
Spring笔记示例源代码
我在学校时整理的笔记,从不懂时到懂,因为时间紧,要找工作,所以整理不好的请谅解,如果需要一些其它资料的,可以找我,这是我的邮箱zhj915946763@163.com,我有java基础的,spring,hibernate,Struts2,svn,xml,...
Spring学习笔记,Spring就是一个工厂,可以将所有对象创建和依赖关系维护,交给spring管理
网上获取的简单关于spring的一些学习笔记, 包括 spring, springMVC, spring cloud, springBoot 和一些其他相关的笔记, 有需要的可以看看
狂神的spring讲解资料,已汇总成PDF笔记,并加了章节标签方便阅读
适合听狂神课的人和刚学框架的人
Spring笔记和小结Spring笔记和小结Spring笔记和小结Spring笔记和小结
Spring快速入门,知识收费
传智播客左慈老师培训的spring笔记,压缩包里面包含四天的笔记