相关疑难解决方法(0)

为什么Spring的ApplicationContext.getBean被认为是坏的?

我问了一个普通的Spring问题:自动转换Spring Beans并让多个人回应,ApplicationContext.getBean()应该尽可能避免调用Spring .这是为什么?

我还应该如何获得我配置Spring创建的bean的权限?

我在一个非Web应用程序中使用Spring,并计划按照LiorH的描述访问共享ApplicationContext对象.

修订

我接受下面的答案,但这是Martin Fowler的另一个选择,他讨论了依赖注入与使用服务定位器(与调用包装本质上相同ApplicationContext.getBean())的优点.

部分,福勒状态," 随着服务定位器应用程序类由一个消息给该定位器询问它[服务]明确地随着喷射没有明确请求时,服务出现在应用程序的类-控制的,因此反转.控制反转是框架的共同特征,但它的东西,是有代价的,它往往是很难理解,当你试图调试导致的问题.所以,整体来说,我宁可不去,[控制反转除非我需要它.这并不是说它是一件坏事,只是因为我认为它需要通过更直接的选择来证明自己的合理性. "

java spring

262
推荐指数
8
解决办法
34万
查看次数

使用@Autowired绑定不在使用'new'启动的实例内部工作

在我的Web spring应用程序中,我使用关键字创建一个实例,new 如下所示.
在我的一个动作类中,存在以下方法.

public void process() { 

    MyBean b=new MyBean(); //initiated the instance with new  
    b.process();
}   
Run Code Online (Sandbox Code Playgroud)

其他MyBean类

@Service
public class MyBean {  

@Autowired  
MyService service;  

public void process() { 
    service.execute(); // this service instance has not initialized by Spring DI :( .service object is null. 
}
Run Code Online (Sandbox Code Playgroud)

Spring依赖注入不设置MyService实例.是因为我自己创建了MyBean的实例而new不是Spring吗?

spring dependency-injection

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

spring ×2

dependency-injection ×1

java ×1