spring - 将 Spring Bean 的可访问范围(@Autowire/@Resource)限制为包

标签 spring

您如何限制 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 ,而不是defaultConnectionManagersomeOtherConnectionManager

最佳答案

像这样的东西对你有用吗?
在第一个 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/

相关文章:

java - 如何在 Spring REST API 响应中连接 Elasticsearch 的结果

java - Hibernate不使用postgresql在spring boot中自动创建表

Java - Tomcat : Reload context. xml 无需重启服务器

java - Hibernate自动更新不会为特定实体创建表

java - 所需的 MultipartFile 参数 'files' 不存在 - MultipartyEntityBuilder

java - Appengine 多个模块本地开发 - Java

spring - Grails 3 Spring Security 覆盖登录表单

java - Spring-Boot 错误页面映射和 NestedServletException

Spring Data REST 和自定义实体查找(提供错误类型的 id)

java - Spring:已经为此响应调用了 getOutputStream()