与其说是静态注入(IOC),不如讲是对JavaBean 的静态成员变量进行赋值。

一般我们在使用依赖注入的时候,如果当前对象(javaBean )创建(实例化)一次,那么非静态的成员变量也会实例化一次,用来支持当前对象的正常使用。而我们有的时候,一些对象是单例(scope="singleton" )的,或者一些变量从项目启动从配置文件加载后不需要变化,那么这种情况下怎么处理呢?

静态注入配置(XML):

 
  1. <!-- 静态注入,相当于调用SecurityUtils.setSecurityManager(securityManager) -->
  2. <beanclass="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
  3. <property name="staticMethod"value="org.apache.shiro.SecurityUtils.setSecurityManager"/>
  4. <property name="arguments" ref="securityManager"/>
  5. </bean>

上面注释写的很清楚,等于调用了下面的方法:

 
  1. SecurityUtils.setSecurityManager(securityManager)

就这么简单。

指定一个staticMethod ,静态的set 方法,另外一个参数是目标对象。把这个对象赋值过去。

如果arguments 是多个,采用List赋值。

 
  1. <!-- 静态注入,相当于调用SecurityUtils.setSecurityManager(securityManager) -->
  2. <beanclass="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
  3. <property name="staticMethod"value="org.apache.shiro.SecurityUtils.setSecurityManager"/>
  4. <property name="arguments">
  5. <list>
  6. <value>securityManager</value>
  7. </list>
  8. </property>
  9. </bean>

spring静态注入的更多相关文章

  1. Spring静态注入的三种方式

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chen1403876161/article/details/53644024Spring静态注入的三 ...

  2. Spring 静态注入讲解(MethodInvokingFactoryBean)

    /* * Copyright (c) 2017 4PX Information Technology Co.,Ltd. All rights reserved. */package com.fpx.o ...

  3. spring 静态注入

    1.静态注入 在setter 方法修改为非 static , 然后在上面注入即可 @Component public class WeixinConfig { // token public stat ...

  4. 转: spring静态注入

    与其说是静态注入(IOC),不如讲是对JavaBean 的静态成员变量进行赋值. 一般我们在使用依赖注入的时候,如果当前对象(javaBean )创建(实例化)一次,那么非静态的成员变量也会实例化一次 ...

  5. Spring静态属性注入

    今天遇到一个工具类,需要静态注入一个属性,方法如下: 第一步:属性的set和get方法不要加static package cn.com.chinalife.ebusiness.common.util; ...

  6. spring配置文件注入到静态变量

    spring配置注入到静态文件代码如下: package com.test.oss; import org.springframework.beans.factory.annotation.Value ...

  7. Spring 依赖注入方式详解

    平常的Java开发中,程序员在某个类中需要依赖其它类的方法. 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想,即依赖类不由 ...

  8. 使用Dagger2做静态注入, 对比Guice.

    Dagger 依赖注入的诉求, 这边就不重复描述了, 在上文Spring以及Guice的IOC文档中都有提及, 既然有了Guice, Google为啥还要搞个Dagger2出来重复造轮子呢? 因为使用 ...

  9. Spring 依赖注入方式详解(四)

    IoC 简介 平常的Java开发中,程序员在某个类中需要依赖其它类的方法. 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想 ...

随机推荐

  1. md5Util

    package com.rscode.credits.util; /** * MD5加密类 * @author 12 */ import java.security.MessageDigest; pu ...

  2. unity---背景循环滚动

    方法一:两张图无缝拼接 float speed = 3; void Update() { transform.Translate(Vector3.right * Time.deltaTime * sp ...

  3. UVa——1600(巡逻机器人)

    迷宫求最短路的话一般用bfs都可以解决,但是这个加了个状态,那么就增加一个维度,用来判断k的值.比较简单的三维bfs.写搜索题的话一定要注意细节.这个题花了好长的时间.因为k的原因,一开始用了k的原因 ...

  4. Go学习之初出茅庐

    在一个月黑风高的夜晚,机缘巧合与Go语言一面之缘,被她的简洁.灵活.高效所吸引,让我有深入学习的冲动,现在开始我的成长之路吧.

  5. slf4j的使用2

    一.Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行 ...

  6. js处理数字加后缀w

    num > 9999 ? (Math.floor(num/1000)/10) + 'w' : num

  7. 20175202 《Java程序设计》第八周学习总结

    20175202 2018-2019-2 <Java程序设计>第八周学习总结 教材知识点总结 1.泛型: 主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 泛型类的声 ...

  8. 使用命令查看 Laravel 的版本

    进入项目根目录文件夹后,进入命令行,输入命令: php artisan --version 或者输入: php artisan 会出现 artisan 的帮助文档,最上面就是 laravel 的版本号

  9. mysql error 1067 invalid default timestamp

    问题 MySQL 5.7版本,在创建数据表时,使用以下语句定义一个字段: `update_time` timestamp DEFAULT '0000-00-00 00:00:00' ON UPDATE ...

  10. 使用Pandas将多个数据表合一

    使用Pandas将多个数据表合一 将多张数据表合为一张表,便于统计分析,进行这一操作的前提为这多张数据表互相之间有关联信息,或者有相同的列. import pandas as pd unames = ...