5

您如何限制 Spring bean 的可访问范围?

这甚至是可能的,还是推荐的?


我问,因为我有一个案例,我希望每个特定的 s 都有一个ConnectionManager类(以防我以后需要单独的类)。@Autowired @ResourceIExternalConnectionConnectionManager

但是,我不希望其他类直接使用这些连接。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只提供defaultConnectionFactoryBean,而不是defaultConnectionManagersomeOtherConnectionManager

4

1 回答 1

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>
于 2013-07-26T20:33:59.683 回答