0

我们的应用程序是使用 Spring 框架开发的,但是,一些配置(即properties文件中的数据库 url)需要动态定义。那么问题来了:

  1. 自己可以Spring吗?我认为这不太实用,但仍然值得一问
  2. 如果对 1. 的回答是否定的,那么我正在考虑使用 JSP 来完成这项工作。那么我们如何让 Spring 应用程序和传统的 JSP 应用程序存在于同一个 Web 应用程序中(可能以最小的编码妥协,真的不喜欢另外 20 个 lib jar 和 50 个类来处理这样的任务)?两个在web.xml?那么我们如何管理编码结构呢?

我是这个话题的新手。因此,任何建议都值得赞赏。

更新

我想我在这里混淆了。我正在尝试设计的是 UI 或类似的东西,可以更改配置设置并将其写入属性文件。可以要求用户重新启动应用程序。但是,如果我们让常规 JSP 来处理这个问题,那么让JSPSpring生活在同一个 web.xml 下就可以了吗?编码结构如何?

4

3 回答 3

1

您可以使用 Spring 的动态语言支持。

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/dynamic-language.html

它允许您在运行时更改应用程序的行为。

以下是更新问题的答案。

假设您使用的是 Spring MVC,IMO 您可以将配置设置页面实现为 Spring MVC 应用程序的一部分。

但是,如果您坚持实现在 Spring MVC 框架之外执行的常规 JSP,则可以将 JSP 文件放在 webapp 中的任何位置(WEB-INF 目录下除外)并直接执行 JSP。(例如http://yourhost/yourcontextroot/foo.jsp。)

要完成上述工作,您可能需要<url-pattern>为 DispatcherServlet 配置如下所示,以使 servlet 容器处理 jsp 请求:

<servlet>
  <servlet-name>appServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  ...
</servlet>

<servlet-mapping>
  <servlet-name>appServlet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

希望这可以帮助。

于 2013-06-24T14:52:07.447 回答
0

您可以使用

PropertyPlaceholderConfigurator为了这。

db-conf-server1.properties
db-conf-server2.properties
db-conf-server3.properties
db-conf-server4.properties

您要做的是,动态地将数据放入此文件并在服务器启动时加载适当的文件。

我在我的一个项目中做了同样的事情,在这个项目中,你必须使用你需要在服务器配置中传递的参数。

如果您需要更多详细信息,请告诉我。

于 2013-06-24T15:17:12.763 回答
0

您不能动态更改属性。

因此,您将需要通过应用程序存储在数据库中。

但是您需要一个永久的数据库 url 来存储其他设置。

于 2013-06-24T14:53:38.753 回答