小编Abh*_*hek的帖子

如何在Spring WebApplicationContext中在运行时添加bean实例?

所以,标题非常简单.我有一个处理器类DynamicBeanHandler,它实现BeanDefinitionRegistryPostProcessor了spring提供的接口.在这个类中,我添加了多个SCOPE_SINGLETONbean,其bean类设置MyDynamicBean如下 -

GenericBeanDefinition myBeanDefinition = new GenericBeanDefinition();
myBeanDefinition.setBeanClass(MyDynamicBean.class);
myBeanDefinition.setScope(SCOPE_SINGLETON);
myBeanDefinition.setPropertyValues(getMutableProperties(dynamicPropertyPrefix));
registry.registerBeanDefinition(dynamicBeanId, myBeanDefinition);
Run Code Online (Sandbox Code Playgroud)

该方法getMutableProperties()返回一个对象MutablePropertyValues.

稍后,我SpringUtil.getBean(dynamicBeanId)将获取类实现所需的MyDynamicBean实例.这一切都很棒.当我想要删除其中一个实例并稍后在没有注册表实例的地方添加新实例时,就会出现问题.有人可以帮我找到办法吗?SpringUtilApplicationContextAware

以下是课程代码SpringUtil-

public class SpringUtil implements ApplicationContextAware {

    private static ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        SpringUtil.applicationContext = applicationContext;
    }

    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    public static Object getBean(String beanId) {
        return applicationContext.getBean(beanId);
    }

    public static <T> T getBean(String beanId, …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

13
推荐指数
1
解决办法
1万
查看次数

无法从Hawtio仪表板连接到远程服务器

我有一个在remote-server-1上运行的camel web应用程序,它是一个tomcat 8服务器.我在这个tomcat上附加了一个jolokia jvm代理,如下所示 -

java -jar jolokia-jvm-1.3.5-agent.jar start <PID>
Run Code Online (Sandbox Code Playgroud)

通过访问http://remote-server-1:port/jolokia- 我在本地机器上得到以下响应-

{
    "request": {
        "type": "version"
    },
    "value": {
        "agent": "1.3.5",
        "protocol": "7.2",
        "config": {
            "maxDepth": "15",
            "discoveryEnabled": "true",
            "maxCollectionSize": "0",
            "agentId": "***.***.***.**-16224-35a7a114-jvm",
            "debug": "false",
            "agentType": "jvm",
            "historyMaxEntries": "10",
            "agentContext": "\/jolokia",
            "maxObjects": "0",
            "debugMaxEntries": "100"
        },
        "info": {
            "product": "tomcat",
            "vendor": "Apache",
            "version": "8.0.35"
        }
    },
    "timestamp": 1491307702,
    "status": 200
}
Run Code Online (Sandbox Code Playgroud)

我也在我的local-tomcat8.5上部署了hawtio.war.当我尝试连接到此远程代理时,我被重定向到登录页面.我无法弄清楚我哪里出错了.谁能帮我这个?

java apache-camel hawtio

5
推荐指数
2
解决办法
4960
查看次数

标签 统计

java ×2

apache-camel ×1

hawtio ×1

spring ×1

spring-mvc ×1