小编als*_*sid的帖子

Spring上下文层次结构

我将使用一个父上下文创建几个Spring上下文.以下是我要创建父上下文的方法:

new ClassPathXmlApplicationContext(new String[] {"ApplicationContext/application.xml"})
Run Code Online (Sandbox Code Playgroud)

我希望以下列方式创建每个父上下文:

PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
configurer.setProperties(properties);
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(appContext);
context.addBeanFactoryPostProcessor(configurer);
context.setConfigLocation("ApplicationContext/beans.xml");
context.refresh();
Run Code Online (Sandbox Code Playgroud)

我们的想法是在每个子环境中使用相同的bean层次结构(DAO,服务,数据源,事务管理器等).有几个上下文的原因是需要有几个不同的数据源(实际上每个应用程序上下文一个).每个数据源的数据库结构是相同的.所以,有一些问题.

  1. 拥有这种上下文的层次结构是否安全?例如,如果有30个子上下文?
  2. 跨子上下文bean可见性怎么样?比如说,我有使用@Component注释声明的CustomerService bean 以及几个自动连接的DAO依赖项.Spring是否在特定子环境中执行自动装配和其他DI操作?
  3. 另外,我将使用以下方法从子上下文中查找bean: childContext.getBean(CustomerService.class); 我是否从这个特定的子环境而不是其他子环境中获得客户服务?我知道,Spring spring是每个应用程序上下文的单例,但仍然不确定.

PS.还有另一种方法可以处理此处描述的多个数据源.但在我的情况下,这种方法似乎并不是很方便.

spring applicationcontext

8
推荐指数
1
解决办法
4964
查看次数

Java 8 Collector.groupingBy下游的分类器值

在以下示例中,将分类器值提供给收集器的供应商功能的正确方法是什么:

import static java.math.BigDecimal.*;
import static java.util.stream.Collector.*;
import static java.util.stream.Collectors.*;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class Test {

    public static class Item {
        String key;
        BigDecimal a;
        BigDecimal b;
        public Item(String key, BigDecimal a, BigDecimal b) {
            this.key = key;
            this.a = a;
            this.b = b;
        }
        public String getKey() {
            return key;
        }
        public BigDecimal getA() {
            return a;
        }
        public BigDecimal getB() {
            return b;
        }


    }
    public static class ItemSum {
        public ItemSum() …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream collectors

3
推荐指数
1
解决办法
943
查看次数