问题标签 [applicationcontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7499 浏览

json - Spring 是否支持 JSON 配置?

有谁知道 Spring 是否有任何扩展允许通过 JSON(或任何其他格式)而不是 XML 配置其 ApplicationContext?我在官方文档中找不到任何内容,但我想知道是否有任何其他开源扩展可以允许这样做。

为了清楚起见,我不是在谈论配置 SpringMVC 以设置基于 RESTful JSON 的 Web 服务或类似的东西,只要可以通过 JSON 而不是 XML 进行 Spring 应用程序配置。

0 投票
3 回答
48432 浏览

java - .properties 文件中的 PropertyPlaceholderConfigurer 和环境变量

我有一个带有 PropertyPlaceholderConfigurer 的 Spring application-context.xml,可以从 .properties 文件中获取属性值。主要和测试源文件夹具有单独的 .properties 文件。问题是我需要在 .properties 文件中使用环境变量。但是当我按照以下方式进行操作时:

我收到以下错误:

而占位符配置器定义为

任何想法如何使 property.name 被解释为环境变量(而不是占位符)?

最好的问候,德米特里。

0 投票
1 回答
6394 浏览

spring - 错误:元素“security:authentication-provider”的前缀“security”未绑定

这是我的 application-security.xml 文件:

一切正常,但我收到“未绑定元素“security:authentication-provider”的前缀“security”的奇怪错误。即使我提供了结束标签。任何人都知道如何解决这个问题?

0 投票
2 回答
1086 浏览

java - 使用 Maven 连接多个独立的 Spring 应用程序

我的项目由多个 Spring 子项目组成:

  • 服务1
  • 服务2
  • 服务3

每个 Service 对内部的其他 Bean 都有多个依赖项,因此每个 Service 都有一个 applicationContext.xml 将 Service 连接在一起。

我使每个子项目都成为独立的 maven 构建,我认为我可以创建一个 AllServicesTogether 应用程序来将这些服务{1..3} 连接在一起。

这通过向这些服务添加 Maven 依赖项来工作。

但是在 AllServicesTogether 应用程序中,所有子服务的连接都丢失了。我猜 Subservices 不是用 Subservice ApplicationContext 编译的,而是使用 AllServicesTogether ApplicationContext。

想法是封装 SubSerivces 的所有连接,并使用以下方法简单地连接 AllServicesTogether:

我从花费数小时的较大项目中创建了这些子项目。是否可以使用这种接线方法,或者我是否需要包含所有这些服务中的 context.xml?

0 投票
1 回答
10202 浏览

java - 带有来自 Jar 的多个 XML 文件的 Spring ApplicationContext

我需要使用当前 Maven 构建中的“主要”applicationContext-a.xml 创建一个 ApplicationContext。另一个连接来自另一个 Maven 构建的类,并预设在 Maven 依赖项包含的 jar 中。

这里的想法:

这应该从 Classpath 加载 applicationContext-a.xml,因为它在同一个项目中。这行得通。

然后应从依赖项 jar 加载 applicationContext-b.xml。 这行不通。

注意

仅匹配直接类路径中的 XML,jar 中不匹配。

我发现了什么:

这有效,但前提是我可以明确告诉 jar 中 xml 的文件名:applicationContext-b.xml

我还需要它来进行集成测试:

最好的主意可能是自定义加载器?必须有办法让这个模式工作......

前段时间有一个解决方案,反之亦然:它只从 jar 中获取 applicationContext.xml。如果类路径中有另一个人,它只匹配这个文件。

0 投票
1 回答
123 浏览

spring - 加载 Spring Beans 的练习

伙计们,

从 ApplicationContext 加载 spring bean 的推荐做法是什么?我们是否编写 ServletContextListener 以在服务器启动时加载它并在上下文中保存 bean 信息?

或者写一些静态方法来做:

并且一直调用这个静态方法?

还是写一个public void方法一直调用?在这种情况下,Spring bean 是否每次都初始化?这看起来容器的工作量太大了。

请建议,谢谢。

0 投票
4 回答
8382 浏览

java - 使用spring进行Java注解扫描

我需要用名称注释的类很少,因此我将注释定义为

现在需要这个注解的类被定义为

我使用下面的代码来扫描注释

问题是返回的地图包含["myClassInfo" -> object of MyClassInfo]但我需要地图包含"myClass"作为键,这是注释的值而不是 bean 名称。

有没有办法做到这一点?

0 投票
1 回答
11479 浏览

java - Spring 3 在自定义 bean 中接收 servletContext

我的问题是我无法在我的 bean 中获取 servletcontext。我创建了自定义 bean“FileRepository”,我需要在那里获取 ServletContext。这是代码

在 ApplicationContext.xml 中注册

当 saveFile(File file) 启动时,我收到 Nullpointerexception 因为 servletContext == null。

那么为什么 servletcontext 不注入呢? 我在 web.xml 中注册了 ContextLoaderListener

我发现有一些范围。可能有问题。简要告诉我有关 applicationsontext 范围的信息或提供链接请求。感谢帮助。我花了很多时间来解决这个问题。

经过一些调试后,我了解到实际上在应用程序启动时调用了 servletcontextaware 的 setServletContexr 方法,但是当我尝试从我的控制器中使用 FileRepository 存储文件时,它已经是另一个带有 null servletContext 字段的对象。

有没有办法在我想要的时候在我的自定义 bean 中自动处理 servlet 上下文,比如在控制器中?

最后我通过 ServletContextAware 获得了 servletContext。我改变了创建fileRepository bean的方式。由此

对此

0 投票
2 回答
15147 浏览

spring - 无法加载 spring 3 模式

我正在使用Spring 3.0.5.RELEASE ,今天在使用 maven 构建项目时,我在appicationContext.xml文件中遇到以下错误:

我试图打开架构链接:

但我总是得到禁止的页面!

这是我配置applicationContext.xml的方式:

请告知如何解决此错误。

0 投票
1 回答
4679 浏览

spring - Spring DI applicationContext.xml xsi:schemaLocation 究竟是如何使用的?

注意:我提到的测试项目可以通过以下方式下载:

git 克隆 https://github.com/mperdikeas/so-spring-di-appcontext-schemalocation.git

..并使用“ant run”运行。

我“理解”XML 命名空间名称只是用作不透明的标识符,而不是用作 URI(维基百科)。我还“理解”XML 模式位置旨在提供有关模式文档实际位置的提示,并且作为提示,在实践中未使用 ( w3.org )。考虑到这一点,我一直在通过修改 applicationContext.xml 来试验一个简单的 Spring DI 应用程序(用于简单的 J2SE 设置)。这是起始版本:

当我执行“sudo ifconfig eth0 down”时,项目运行完美,这与运行时一致,无需费心从 schemaLocations 中获取任何内容。但是,当我通过在每对中的第二个 URL 中添加一个简单的下划线来破坏 schemaLocations 时,我收到了以下投诉:

这似乎表明 Spring DI 运行时使用 xsi:schemaLocation 中每对中的第二个 URL 作为某种标识符(在其逻辑中硬编码,因为没有网络访问)。所以我的假设是 Spring DI 运行时对每个命名空间使用两种标识符:用于唯一标识命名空间的xmlns标识符(用作不透明字符串)和用于唯一标识该命名空间的架构版本的schemaLocation标识符(再次使用作为一个不透明的字符串)。即,schemaLocation实际上被使用(以一种扭曲的方式?因为这似乎不是 w3c 文档的意图)来对命名空间进行版本控制。而且,在这种情况下,为什么 Spring DI 运行时不抱怨缺少p ”命名空间的schemaLocation 。我的心智模型正确吗?