如何限制 Spring bean 的可访问范围?
这可能吗,或者推荐吗?
我问,因为我有一个情况,我想ConnectionManager为每个特定的类提供一个类(以防我以后需要单独的类)。@Autowired@ResourceIExternalConnectionConnectionManager
但是,我不希望其他类直接使用这些连接。对我来说,有某种方法将 beans 包设为私有是有意义的IExternalConnection。
关于 Spring Bean 范围的大多数问题都与 的生命周期有关Bean,这不是这个问题的重点
编辑: 这里有一些代码片段来澄清我的意思
public class ConnectionFactory {
@Resource(name = "defaultConnectionManager")
private IExternalConnectionManager defaultConnectionManager;
@Resource(name = "someOtherConnectionManager")
private IExternalConnectionManager someOtherConnectionManager;
}
Run Code Online (Sandbox Code Playgroud)
配置类:
@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();
}
}
Run Code Online (Sandbox Code Playgroud)
目标是Connections只提供defaultConnectionFactoryBean,而不是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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1191 次 |
| 最近记录: |