【问题标题】:Specify Tomcat 'Resource's in Spring boot在 Spring Boot 中指定 Tomcat 的“资源”
【发布时间】:2014-05-19 13:31:40
【问题描述】:

我正在尝试在 Spring Boot 上运行应用程序,但为此我需要向 tomcat 添加一些资源,例如。数据源配置等。

通常我会添加一些类似的东西

<Resources name="..." ....>

但是我怎样才能在 Spring Boot 中实现呢?

【问题讨论】:

    标签: java spring tomcat spring-boot


    【解决方案1】:

    我认为以下内容对您有用(我已成功使用类似的方法来自定义嵌入式 tomcat 的其他方面):

    @Configuration
    public class TomcatConfig implements EmbeddedServletContainerCustomizer {
        @Override
        public void customize(ConfigurableEmbeddedServletContainer container) {
            if(container instanceof TomcatEmbeddedServletContainerFactory) {
                TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory = (TomcatEmbeddedServletContainerFactory) container;
                tomcatEmbeddedServletContainerFactory.addContextCustomizers(new TomcatConnectorCustomizer() {
                @Override
                public void customize(Connector connector) {
                    connector.setNamingResources(.......);
                }
            });
            }
        }
    }
    

    【讨论】:

    • 但是当您可以在 Spring 中本地配置 DataSource 时,为什么还要这样做呢?我想也许有第 3 方库假定 JNDI 是唯一可以查找数据库的地方。
    • @DaveSyer 这是一个非常好的问题 Dr. Sayer! Spring Boot 可以如此轻松地从属性文件配置数据源的方式使得 JNDI 显得多余
    • 另一个类似的原因。我们有使用 JNDI 数据源的基于 spring 3 的 spring 安全代码。如何在带有嵌入式 Tomcat 的 Spring Boot 应用程序中使用它?
    • 我不确定这是否完全相关,但我不仅想启动 Spring 应用程序,还想在启动时向 Tomcat 添加另一个资源(一个简单的 Web 客户端) - 有没有办法做到这一点?也许你可以take a look at my question?谢谢! BR;
    【解决方案2】:

    github 中有一个示例项目,用于解决自定义 Tomcat /设置资源属性,他们使用数据源配置作为示例。您可以找到项目应用示例here

    你可以找到讨论here

    【讨论】:

      猜你喜欢
      • 2017-05-21
      • 1970-01-01
      • 2018-09-21
      • 2016-12-25
      • 2016-10-01
      • 1970-01-01
      • 2021-01-01
      • 2018-10-31
      • 1970-01-01
      相关资源
      最近更新 更多