Tag: spring3

在Spring 3中将属性添加到所有控制器的模型中

我的Spring 3应用程序中的每个视图都有一组可以依赖的属性。 所以每个控制器的第一行是这样的: ControllerHelper.addDefaultModel(model, personManager, request); 在那里我会补充 用户对象和从数据库检索到的全名(如果有人login) 通常设置一次的variables集(如imagesHost ) 访客可以切换到的一组语言 当前的语言 一些统计数据(例如我们系统中的总人数) 这一切都允许每个视图显示login用户的名称,轻松引用图像的位置,语言列表和一些有关该网站的整体统计。 所以问题是,控制器模型对象是存储所有数据的最佳位置,还是有一个更方便的地方,这使得视图访问这些信息一样容易? 其次,我真的很喜欢不必在每个控制器中都有上面的ControllerHelper行作为第一行。 实际上并不总是第一行,有时我首先检查是否需要在控制器中redirect,因为我不想浪费资源来填充模型。 也许filter或注释或者一些Springcallback机制可以确保ControllerHelper代码在控制器完成之后但在视图呈现之前被调用,如果redirect被返回,则跳过这一点?

如何在web.xml中注册Spring @Configuration注释类而不是applicationContext.xml文件?

我在web应用程序中使用jsf和spring。 我已经configuration了数据源和会话工厂在一个configuration类,它使用@Configuration, @ComponentScan Configuration @Configuration, @ComponentScan等注释。 我没有任何applicationContext.xml文件在我的项目中,因为我正在处理Configuration类中的上下文xml的每个条目。 testing用例能够成功运行,但是当我部署我的web应用程序时,它给了我错误 java.lang.IllegalStateException:没有findWebApplicationContext:没有ContextLoaderListener注册? 现在,如果我在web.xml中给监听器类, <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 它给我错误, /WEB-INF/applicationContext.xml找不到 根据ContextLoaderListener的文档,如果我没有明确地给web.xml contextConfigLocation参数,它会在web.xmlsearch名为applicationContext.xml的默认spring上下文文件。 现在,如果我不想使用spring上下文文件并执行所有带注释的configuration,该怎么办? 我应该如何注册监听器类ContextLoaderListener以便不使用XML文件,只使用注释,我可以运行我的Web应用程序与spring和JSF?

servlet中的<mvc:annotation-driven />和<context:annotation-config />有什么区别?

我正在从Spring 2.5迁移到Spring 3。 他们引入了<mvc:annotation-driven /> ,它有一些黑魔法。 这应该只在servletconfiguration文件中声明。 在Spring 2.5中,我刚刚使用<context:annotation-config />和<context:component-scan base='…'/>标签在application-context.xml和dispatcher servletconfigurationXML中声明了适当的基本包扫描。 所以我想知道servletconfiguration中的mvc:annotation-driven和context:annotation-config标记和Spring 3configuration文件中可以省略的是什么?