当前位置: 首页 > 知识库问答 >
问题:

spring-boot:@enableRedisHttpSession注释忽略配置文件(在否定配置文件时)

海信鸥
2023-03-14

我在使用Spring Boot配置文件和@enableRedisHttpSession时遇到了这个奇怪的问题:

如果我使用此设置,则一切都是正确的:

@Configuration
@Profile({"prod"})
@EnableRedisHttpSession
public class SecurityConfiguration extends WebSecurityConfigurerAdapter 
@Configuration
@Profile({"!dev", "!test"})
@EnableRedisHttpSession
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

我尝试了几种变通方法:

>

  • 为了安全,我使用以下属性禁用了它:Security.忽略了:/**
  • 但是,我无法禁用Redis会话。我已经尝试了以下操作:spring.autocigure.exclude=org.springframework.boot.autocigure.session.sessionautociguration

    这也是:spring.data.redis.repositories.enabled=false但没有成功。

    编辑:这是初始化Redis时显示的stacktrace(此配置文件不需要它):

    Caused by: org.springframework.data.redis.RedisConnectionFailureException:     Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
        at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:204) ~[spring-data-redis-1.8.13.RELEASE.jar:na]
        at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:348) ~[spring-data-redis-1.8.13.RELEASE.jar:na]
        at org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration$EnableRedisKeyspaceNotificationsInitializer.afterPropertiesSet(RedisHttpSessionConfiguration.java:249) ~[spring-session-1.3.3.RELEASE.jar:na]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1692) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
        at org.springframework.beans.fa
    
  • 共有1个答案

    诸葛柏
    2023-03-14

    我还没有做过《永远的Spring》,但我确实找到了这个答案,它暗示你不能“否定”配置文件:我能否定(!)spring简介集?

     类似资料:
    • 下面是我的pom.xml: 在Entourage-0.0.1-snapshot.jar中,config.properties位于根,其内容与上面相同(即localhost)。 我不是在胡编乱造!

    • 我有spring boot的申请。我需要将spring boot配置文件连接到maven配置文件,所以当我调用命令时 或 它应该调用spring boot加载application-dev.yml或application-prod.yml。当我打电话的时候 它应该在启动之前调用application-dev.yml文件。因此需要从2个命令调用spring boot开发配置文件。我有一个问题,每次我

    • 我有一个库,这是一个Spring Boot项目。该库有一个library.yml文件,其中包含用于其配置的dev和prod道具: 但是当我检查env的值时,我得到的是“prod”。为什么? 我如何告诉Spring Boot使用library.yml中的活动(例如dev)配置文件道具? 注意:我更喜欢使用。yml而不是。properties文件。

    • 我在Spring Boot(1.5.7.release)中添加了带有JWT身份验证的Spring Security性(5.0.0.release),但是CORS似乎不起作用。我添加了这里描述的CORS配置。我还尝试将@CrossOrigin添加到控制器中,但似乎没有改变任何东西。 和Spring Security调试日志: 下面是无效CORS请求的日志:

    • 有谁能告诉我,是否可以根据应用程序运行的环境在spring加载的应用程序中定义概要文件(Dev、Prod、Local)? 每个开发人员都需要配置一个本地配置文件(每个开发人员都需要配置一个本地配置文件,每个开发人员都需要配置一个本地配置文件来运行Prod)

    • 我不确定我是否很好地理解了Spring概要文件是如何处理yaml和属性文件的。我试图将这两种类型的配置分开(这两个文件不共享任何配置),但在从yaml配置中读取配置文件时遇到了问题。 我的问题是,当我试图(通过xml)配置我的数据源时,这样做: Spring总是使用YAML文件中的最后一个配置,忽略概要文件。我试图通过web.xml中的contex-parameter或直接将活动概要文件传递给JV