需求:工具类里面引用IOC容器Bean,强迫症患者在调用工具类时喜欢用静态方法的方式而非注入的方式去调用,但是spring 不支持注解注入静态成员变量. 静态变量/类变量不是对象的属性,而是一个类的属性,spring是基于对象层面的依赖注入.静态变量不属于对象,只属于类,也就是说在类被加载字节码的时候变量已经初始化了,也就是给该变量分配内存了,导致spring忽略静态变量. 举个栗子: @Component public class MessageUtil { @Resource private…
bean的生命周期 1.实例化Bean对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化. 对于ApplicationContext容器,当容器启动结束后,便实例化所有的bean. 容器通过获取BeanDefinition对象中的信息进行实例化.并且这一步仅仅是简单的实例化,并未进行依赖注入. 实例化对象被包装在BeanWrapper对象中,BeanWrapper提供了设置…
在开发中,总是能碰到用注解注入不了Spring容器里面bean对象的问题.为了解决这个问题,我们需要一个工具类来直接获取Spring容器中的bean.因此就写了这个工具类,在此记录一下,方便后续查阅.废话不多说,直接上代码. 一.代码 package com.zxy.demo.spring; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext;…
关于Spring的搭建可参见:浅析Spring框架的搭建.在测试之前还是应该先将环境配置好,将相关Jar包导进来.Spring创建的对象,默认情况下都是单例模式,除非通过scope指定. 向IOC容器中注入对象,通过配置XML文件的<bean>节点来实现,<bean>中最主要的属性有两个,id和class,id表示标识这个<bean>节点,class表示关联的类文件名称(包名 + 类名).<property>节点可以调用类中的setter方法,name对应参…
可以实现spring的factoryBean 接口,这样可以加入spring的IOC容器 比如现在有一个类叫MyObject,我们没有这个对象的源码,无法对这个对象进行操作,那么我们如何加入spring的配置呢? package cn.cutter.start.bean; import org.springframework.beans.factory.FactoryBean; import org.springframework.stereotype.Component; @Component…
---恢复内容开始--- 在Spring IOC模块中Bean是非常重要的.在这里我想给大家讲讲关于Bean对象实例化的三种注入方式: 首先,我先讲一下关于Bean对象属性值的两种注入方式:set注入  和  构造注入 constructor-arg:通过构造函数注入.        property:通过setter对应的方法注入. 那么什么是注入:在Spring中对Bean属性赋值的过程我们称之为依赖注入 set注入是通过对象的set方法为对象属性赋值,构造注入是通过bean对象的构造方法为…
IoC操作Bean管理(bean作用域) 1,在Spring里面,设置创建bean实例是单实例还是多实例 2,在Spring里面,默认情况下,bean是单实例对象 3,如何设置单实例还是多实例 (1)在spring配置文件bean标签里面有属性(scope)用于设置单实例还是多实例 (2)scope属性值 第一个值 默认值,singleton,表示单实例对象 第二个值 prototype,表示是多实例对象 (3)singleton 和 prototype区别 第一 singleton 单实例,…
IoC操作Bean管理(基于注解方式) 1,什么是注解 (1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值...) (2)使用注解,注解作用在类上面,方法上面,属性上面 (3)使用注解目的:简化xml配置 2,Spring针对Bean管理中创建对象提供注解 (1)@Component (2)@Service 一般用在业务逻辑层 Service层 (3)@Controller  一般用在外部层,控制层 (4)@Repository  一般用在持久层 Dao层 *上面四个…
Ioc操作Bean管理 1,什么是Bean管理 (0)Bean管理指的是两个操作 (1)Spring创建对象 (2)Spring注入属性 2,Bean管理操作有两种方式 (1)基于xml配置文件方式实现 (2)基于注解方式实现 Ioc操作Bean管理(基于xml方式) 1,基于xml方式创建对象 <bean id="user" class="com.company.spring5.User"></bean> (1)在spring配置文件中,使…
IoC操作Bean管理(引入外部属性文件) 1,直接配置数据库信息 (1)配置德鲁伊连接池 (2)引入德鲁伊连接池依赖jar包 2,通过引入外部属性文件配置数据库连接池 (1)创建外部属性文件,properties格式文件,写数据库信息 (2)把外部properties属性文件引入到spring配置文件中 *引入context名称空间 xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLoca…