如何限制spring bean的可访问范围?
这是可能的,还是推荐的?
我问,因为我有一个案例,我希望ConnectionManager
课程 @Autowired
@Resource
每个特定的IExternalConnection
(以防万一)我后来需要单独的ConnectionManager
类。
但是,我不希望其他类直接使用这些连接。对我来说,有一些方法可以使IExternalConnection
bean包变为私有。
关于Spring Bean范围的大多数问题都与Bean
的生命周期有关,具体是 不 这个问题是关于什么的
修改: 这里有一些代码片段来澄清我的意思
public class ConnectionFactory {
@Resource(name = "defaultConnectionManager")
private IExternalConnectionManager defaultConnectionManager;
@Resource(name = "someOtherConnectionManager")
private IExternalConnectionManager someOtherConnectionManager;
}
配置类:
@Configuration
public class Connections {
@Bean
public ConnectionFactory defaultConnectionFactory() {
return new ConnectionFactory();
}
@Bean
public IExternalConnectionManager defaultConnectionManager() {
return new defaultConnectionManager();
}
@Bean
public IExternalConnectionManager someOtherConnectionManager() {
return new someOtherConnectionManager();
}
}
正在制作Connections
的目标只提供defaultConnectionFactory
Bean,而不是defaultConnectionManager
或someOtherConnectionManager
答案 0 :(得分:0)
这样的事情对你有用吗? 在第一个bean的范围内定义第二个bean
<bean class="connectionFactory" >
<property name="defaultConnectionManager">
<bean class="com.xyz.Connectionmanager" >
<property name="connection">
<bean class="com.xyz.Connection" ></bean>
</property>
</bean>
</property>
</bean>