您如何限制 Spring bean 的可访问范围?
这甚至是可能的,还是推荐的?
我问,因为我有一个案例,我想要一个 ConnectionManager
上课至@Autowired
@Resource
每个特定的IExternalConnection
s(以防我以后需要单独的 ConnectionManager
类)。
但是,我不希望其他类直接使用这些连接。对我来说,有一些方法可以制作 IExternalConnection
bean 包私有(private)。
大多数关于 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
最佳答案
像这样的东西对你有用吗?
在第一个 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>
关于spring - 将 Spring Bean 的可访问范围(@Autowire/@Resource)限制为包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17889323/