我有一个spring-core应用程序,其中有两个用于不同通道的上下文文件,即mobile&网状物
如果我收到来自移动频道的请求,将加载mobile-context.xml如果我收到来自网络频道的请求,web-context.xml将被加载
我有ClassA,它被添加在两个上下文文件中,所以它的加载是Spring的上下文加载概念的两倍,因为两者都是不同的上下文。
不管上下文如何,我都可以加载一次这个ClassA吗?或者我可以在两个上下文中共享ClassA对象吗
创建多个上下文并不是什么新鲜事。您可以通过创建两个ApplicationContext
实例来实现这一点。
下面这样的东西就可以了。
ApplicationContext webContext= new ClassPathXmlApplicationContext("web-context.xml");
ApplicationContext mobileContext= new ClassPathXmlApplicationContext("mobile-context.xml");
既然您有两个contexts
,您可以随心所欲地使用它们。
若您希望根据设备类型提供不同的业务逻辑,我建议您查看SpringMobile项目。该项目增加了现有的弹簧项目,并能够根据检测到的设备进行设备检测和布线到不同的视图。
这允许您在请求处理级别检测设备,并允许您对不同设备以不同方式处理请求。
这个问题有你可能想要的更多细节。