Spring学习(二)Spring Bean装配

Bean的作用域

==========================

bean有五种作用域 scope
singleton : 单例,指一个Bean容器中只存在一份
prototype : 每次请求(每次使用)创建新的实例,destroy方式不生效
request : 每次http请求创建一个实例且仅在当前request内有效
sesson : 同上,每次http请求创建,当前session内有效
global session : 基于portlet的web中有效(portlet定义了 global session),如果是在web中,同session

Bean的生命周期

=========================
-定义
  -实现org.springframework.beans.factory.InitializingBean接口,覆盖afterPropertiesSet方法
  -配置init-method

<bean id="demo" class="com.pojo.Demo" init-method="init">
</bean>
public class Demo{
    public void init(){}
}

-初始化
-使用
-销毁
  -实现org.springframework.beans.factory.DisposableBean接口,覆盖destroy方法
  -配置init-method

<bean id="demo" class="com.pojo.Demo" destroy-method="cleanup">
</bean>
public class Demo{
    public void cleanup(){}
}

·配置全局默认初始化、销毁方法

<beans xmlns="..." default-init-method="init" default-destroy-method="destroy">
</beans>

Ps:当三种方式同时实现优先级 当实现了初始化和销毁方法默认的的初始化和销毁自动失效

Aware接口

==================================

·Spring中提供了ー些以 Awares结尾的接口,实现了 Aware接口的bean在被初始化之后,可以获取相应资源
·通过 Aware接口,可以对 spring相应资源进行操作(一定要慎重)
·为对 spring进行简单的扩展提供了方便的入口

Bean的自动装配(Autowiring)

===================================

·No:不做任何操作
·byname:根据属性名自动装配。此选项将检査容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配
·bytype如果容器中存在一个与指定属性类型相司的bean,那么将与该属性自动装配;如果存在多个该类型bean,那么抛出异常,并指出不能使用 bytype方式进行自动装配;如果没有找到相匹配的bean,则什么事都不发生
·Constructor:与 bytype方式类似,不同之处在于它应用于构造器参数。如果容器中没有找到与构造器参数类型一致的bean那么抛出异常

<beans xmlns="..." default-autowire="No">
    ....
</beans>

Resources

==================================

·Resources
  -Urlresource:URL对应的资源,根据一个URL地址即可构建
  -Classpath Resource:获取类路径下的资源文件
  -Filesystemresource:获取文件系统里面的资源
  -Servlet Contextresource: Servletcontext:封装的资源,用于访问 Servlet Context:环境下的资源
  -Inputstreamresource:针对于输入流封装的资源
  -Bytearrayresource:针对于字节数组封装的资源

·ResourceLoader

    public interface ResourceLoader{
        Resource getResource(String location);
    }

    Resource template = ctx.getResource("src/resource/path/demo.text");
    Resource template = ctx.getResource("classpath:src/resource/path/demo.text");
    Resource template = ctx.getResource("file:/src/resource/path/demo.text");

原文地址:https://www.cnblogs.com/ic710/p/11026794.html

时间: 2024-08-09 08:41:09

Spring学习(二)Spring Bean装配的相关文章

Spring学习(二)--装配Bean

一.Spring装配机制 Spring提供了三种主要的装配机制: 1.在XML中进行显示配置 2.在Java中进行显示配置 3.隐式的bean发现机制和自动装配--自动化装配bean Spring可以通过注解来进行自动装配(无需再手动写配置文件),Spring从两个角度实现自动化装配: 1.组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean; 2.自动装配(autowiring):Spring自动满足bean之间的依赖;--以CD及CD播放器为示

Spring学习笔记(三)之装配Bean

除了组件扫描与自动装配之外还有基于Java代码的装配与基于XML的装配. 有一些场景是我们不能用自动装配的,比如我们要给第三方库中的组件装配到我们的应用中,这时自动装配无效,因为自动装配只能扫描本应用中的包. 这时我们就要在基于代码代码的装配和基于XML的装配中进行选择,前面我们说到了JavaConfig相比XML更强大更安全. 一.基于Java代码的装配Bean(JavaConfig) 但是JavaConfig又与Java有所区别. 概念上  JavaConfig是配置 与应用的其他代码业务逻

Spring入门(二):自动化装配bean

Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中需要创建的bean. 自动装配(autowiring):Spring会自动满足bean之间的依赖. 为了更形象的解释组件扫描与自动装配,我们举一个音响系统的例子,主要包含以下内容: CD接口 CD接口的一个实现类 CD播放器 关于CD和CD播放器关系的解释: 如果你不将CD插入(注入)到CD播放器中,那么CD播放器其实是没有太大用处的.所以,可以这样说, CD播放器依赖于

spring学习(二) ———— AOP之AspectJ框架的使用

前面讲解了spring的特性之一,IOC(控制反转),因为有了IOC,所以我们都不需要自己new对象了,想要什么,spring就给什么.而今天要学习spring的第二个重点,AOP.一篇讲解不完,所以这篇文章主要介绍一下什么是AOP,如何去理解AOP.理解完之后,在spring中如何使用AspectJ AOP框架的.看得懂,写的出spring配置的那么就学的差不多了.加油.建议都自己手动实现一遍,这样才能更好的理解. --WH 一.什么是AOP? AOP:面向切面编程,采用横向抽取机制,取代了传

Spring学习笔记——02 Bean的命名及实例化

一.Bean的命名 前一篇讲到IoC是一个管理Bean的容器,Bean多数情况下都是通过XML文件进行配置的,其中Bean的命名有以下几种方式,现在梳理一下. 1. 不指定id,只配置类名 <bean class="com.erving.HelloImpl"></bean> 若要调用该Bean,需要用以下语句: HelloApi helloApi = context.getBean(HelloApi.class); 2. 指定id,且id必须在IoC容器中唯一

spring学习二:根据spring原理自己写个spring

请先看我另一篇文章:"Spring学习一:IOC(控制反转)和AOP(面向切面)的xml配置和注解方式"中大概知道他的简单用法 那我自己想写一个简单sping,注解的方式以后再写 方式:1.解析xml配置 2.使用java的反射机制生产动态代理对象 3.扫描类上的注解,再用反射(没写) 代码如下(简单实现,重原理轻代码,不喜勿喷) xml配置我就直接用我上一篇spring-test的配置了,代码也用上一篇的,但解析的时候是用自己写的,没有用调用任何spring API代码 <?x

spring学习(02)之bean实例化的三种方式

bean实体例化的三种方式 在spring中有三中实例化bean的方式: 一.使用构造器实例化:(通常使用的一个方法,重点) 二.使用静态工厂方法实例化: 三.使用实例化工厂方法实例化 第一种.使用构造器实例化: 这种实例化的方式可能在我们平时的开发中用到的是最多的,因为在xml文件中配置简单并且也不需要额外的工厂类来实现. 比如 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h

SpringBoot学习(二)--&gt;Spring的Java配置方式

二.Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的: 1.@Configuration 作用于类上,相当于一个xml配置文件: 2.@Bean 作用于方法上,相当于xml配置中的<bean>: 2.示例 该示例演示了通过Java配置的方式进行配置Spring,并且实现了Spring IO

Spring(二)Bean入门介绍

一.BeanFactory介绍 1.1.Bean: 在Spring技术中是基于组件的 最基本了是最常用的单元 其实实例保存在Spring的容器当中 Bean通常被定义在配置文件当中,Bean实例化由Spring的Ioc容器进行管理,Bean的实例可以通过Beanfactory进行访问,实际上大部分J2EE应用,Bean是通过ApplicationContext来访问的,ApplicationContext是BeanFactory的子接口,功能要比BeanFactory强大许多 1.2.BeanF

spring学习 六 spring与mybatis整合

在mybatis学习中有两种配置文件 :全局配置文件,映射配置文件.mybatis和spring整合,其实就是把mybatis中的全局配置文件的配置内容都变成一个spring容器的一个bean,让spring容器进行托管.因此整合过程就是把mybatis全局配置文件的内容整合到spring的配置文件中 (一)mybatis全局配置文件 : 根标签是<configuration>, 子标签包括: <typeAliases>配置别名, <environments> 配置数据