`
xls
  • 浏览: 107694 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

spring 依赖注入到直接new 对象

阅读更多

      当为遗留系统加入spring时,经典问题就是遗留系统需要引用spring管理的bean。幸好spring有机制可以处理这些。

建一个类实现ApplicationContextAware接口,有一个引用ApplicationContext的静态成员,然后,遗留系统需要引用spring管理的bean的地方,使用这个类。

1.比如:我这里建一个SpringContext类

package net.blogjava.chenlb;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/**
 * 此类可以取得Spring的上下文.
 * Spring 使new方法创建的对象可以引用spring管理的bean.
 * 2007-10-18 上午11:12:33
 * 
@author chenlb
 
*/
public class SpringContext implements ApplicationContextAware {

    
protected static ApplicationContext context;
    
    
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        context 
= applicationContext;
    }

    
public static ApplicationContext getContext() {
        
return context;
    }

}


2.然后在spring配置文件里加

<bean id="springContext" class="net.blogjava.chenlb.SpringContext"></bean>


3.其它类中引用

MyBean myBean = (MyBean) SpringContext.getContext().getBean("myBean");


4.如果老是写SpringContext.getContext().getBean("...");麻烦,可以建一个工厂类来返回你要的bean

package net.blogjava.chenlb;



public class MyServerFactory {


    
public static MyBean1 getMyBean1() {
        
return (MyBean1) SpringContext.getContext().getBean("myBean1");
    }
    

}
分享到:
评论

相关推荐

    spring依赖注入的理解.docx

    Spring中的依赖注入就是上面说的外部,实例不在由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该... 我们不用关心Car的变化,实例之间的依赖关系由IOC容器负责了,等待Spring依赖注入。

    第一个Spring程序(DI的实现).docx

    依赖注入:Dependency Injection(DI)与控制反转(IoC),不同角度但是同一个...在spring容器的角度看来,spring容器负责将被依赖对象赋值给成员变量,这相当于为实例对象注入了它所依赖的实例,这是spring的依赖注入。

    基于框架的Web开发-IoC(控制反转)和DI(依赖注入)入门.doc

    在平时的java应用开发中,要实现某一个功能至少需要两个或以上的对象来协作完成,在没有使用Spring的时候,每个对象在需要使用他的合作对象时,自己均要使用像new object() 这样的语法来将合作对象创建出来,这个...

    SSM相关面试题(包括Spring,SpringMVC,Mybaits在内的50道面试题)

    以前是由自己控制它所引用对象的生命周期,而在IOC中,所有的对象都被 Spring 控制,控制对象生命周期的不再是引用它的对象,而是Spring容器,由 Spring 容器帮我们创建、查找及注入依赖对象,而引用对象只是被动的...

    高级开发spring面试题和答案.pdf

    spring 三种注入(就是从spring容器中将bean放入对象属性值中) Spring下描述依赖关系@Resource, @Autowired和@Inject的区别与联系 Spring中BeanFactory和ApplicationContext的区别 谈谈Spring IOC的理解,原理与...

    Spring.net框架

    t.InvokeMember(prop.propertyName, ........BindingFlags.SetProperty, null, o, new Object[] {p})利用反射机制对创建出来的对象设置属性值。 我们的Factory就是利用这种方式根据配置文件动态加载程序集,动态创建...

    PHP进阶学习之依赖注入与Ioc容器详解

    最早在java的spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。目前许多主流PHP框架也使用了依赖注入容器,如ThinkPHP、Laravel等。 ...

    Spring面试题

    面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面 1.面向切面编程提供声明式事务管理 2.spring支持用户自定义的切面 面向切面编程(aop)是对面向对象编程(oop)的...

    yarn:编译时依赖注入

    编译时依赖注入和受Spring和Dagger启发的组件框架。 作为弹簧的轻型替代品,用于需要非常快速的启动时间的项目。 豆子 Bean是可以使用依赖项注入并依次注入到其他对象中的对象。 可以使用组件扫描或通过另一个bean...

    dart-polymer-dependency-injection:Spring样式注释驱动的依赖项注入和DOM扫描以实现自动配置

    Dart聚合物依赖注入这提供了使用配置的依赖项注入来定义可以注入到Autowired字段中的Bean。 这与使用批注和Java配置的Spring Dependency Injection非常相似。 通过搜索DOM,可以自动查找Bean。 这允许注入聚合物元素...

    go-beans:此存储库包含一个受Spring Boot Bean System启发的Golang依赖注入器

    该存储库包含一个受Spring Boot Bean System启发的Golang依赖注入器 产品特点 自动连接所需的所有依赖项 结构喷射器 可变喷油器 如何添加到您的项目 go get -u github.com/hsjsjsj009/go-beans 如何在您的项目中...

    笔记_JAVA基础篇,面试必问的那些事.pdf

    与此同时 IOC 也称为 DI(依赖注入),依赖注入是一种开发模式;依赖注入提倡使用接口编程;依赖注入使得可以开发各个组件,然后根据组件之间的依赖关系注入组装。 所谓依赖,从程序的角度看,就是比如 A 要调用 B ...

    Spring IOC DI AOP 事务)

    目录IOC(控制反转)DI(依赖注入)AOP(面向切面编程)Spring事务事务传播特性脏读,不可重复读,幻读事务隔离级别不喜勿喷 如有雷同请联系本人!! IOC(控制反转) IOC是一种设计思想,而不是什么技术 传统方法...

    winter-boot:Spring Boot样式-PHP8框架。 仅带有注释(属性)的轻松依赖注入和面向方面的魔术

    (根据开发) ... 受Spring Boot的启发,因此,您可以以这种样式构建PHP应用程序。... 依赖项注入是由具有PHP8属性(注释)的框架管理的 样例服务 #[Service] class UserServiceImpl implements UserService

    负责业务逻辑的类都必须实现这个接口

    从前面对这三种依赖注入的方式中可以看出:其实所有的依赖注入都离不开抽象的支持,也就是说只有"面向接口编程",才能够实现依赖注入。 读者可能还会有疑惑:虽然具体的存储方式和业务逻辑无关了,可不是还要在调用...

    spring考试通过必备材料.docx

    —4、依赖注入 --&gt; 8 applicationContext.xml中Setter方法类之间的注入 8 applicationContext.xml 中Setter方法属性注入 User配置 8 applicationContext.xml构造器方法属性注入 9 applicationContext.xml中setter...

    newdemo-3.zip

    从spring到springmvc到springboot到springcloud(三)的资源文件:springmvc项目

    基于maven项目的SSM框架与layu前端框架的代码

    IOC:控制反转也叫依赖注入。利用了工厂模式将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    现在,Java EE 后端与 Flex 前端的接口已经定义好了,要完成 Java EE 后端的接口实现类非常容易,利用 Spring 强大的依赖注入功能,可以通过几行简单的代码完成: 清单 2. FlexServiceImpl class public ...

    Management-System-of-company:项目使用Servlet + mybatis构建的Web项目,目的是为了进一步熟悉mybatis的进一步配置,根据spring的内核编写了FormBean进行使用

    为了进一步熟悉SSM框架,我单独摘出了mybatis部署在普通的java Web项目上,从spring上插入了依赖注入,自己根据反射编写了一个映射工具类,可以根据前端返回的信息来封装bean FormBean如下 public class FormBean { ...

Global site tag (gtag.js) - Google Analytics