问题标签 [spring-config]

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 投票
1 回答
513 浏览

spring - Spring 5.0.5 @Value 无法解析为正确的类型

我在春季 5 收到以下错误,并且已经阅读了有关此问题的所有帖子,但没有运气。我刚刚重构了应用程序以通过 PropertiesConfig 类而不是 appliationContext.xml 使用 @Configuration 来进行属性占位符定义

引用变量:

混合配置:

属性配置类:

请并感谢您的帮助!

0 投票
1 回答
4562 浏览

spring-boot - 使用 Spring Boot 运行时无法处理 Spring Configuration Server 中配置类的导入候选

我是 Spring 新手并试图拥有一个 Spring Cloud 配置服务器,但是当我尝试启动服务器时,我遇到了以下错误:-

以下是配置服务器的片段:-

以下是项目的 pom.xml:-

以下是application.properties:-

任何建议都会有所帮助。

0 投票
1 回答
683 浏览

java - Spring Boot 中默认不使用自定义密钥生成器

我有一个自定义密钥生成器,只有在我使用注释"keyGenerator"中的属性时才会调用它。@Cachehable

创建它的我的配置类作为 gradle 依赖项被拉入(并被加载并创建了我的密钥生成器)。

配置:

我传递给它的列表是一组密钥生成器,开发人员可以创建(作为 bean),可用于特定的缓存解析器/管理器。因此,它允许为 MemCache、Redis 或 EhCache 使用不同的密钥生成器(如果您要在一个项目中使用多个)。但这可以是一个空列表。

密钥生成器:

以下将永远不会使用我的密钥生成器:

但以下确实使用它:

我如何让我的成为默认值?

编辑:即使更改为以下内容也不会使用我的密钥生成器:

0 投票
1 回答
137 浏览

spring - Spring 忽略设置为默认属性的`spring.cloud.config.discovery`

我正在尝试在不引用任何外部文件的情况下创建 Spring Application。这应该是一个模块,您可以将其作为依赖项包含在内,配置并用于将服务插入现有生态系统。这就是我这样做的方式:

然后我继续通过环境变量在运行命令中提供 Eureka 默认区域:

应用程序在 Eureka 中成功注册,但不幸的是,它尝试在此之前获取配置,并且它正在默认 URL ( http://localhost:8888) 下查找它,而不是从注册表中获取配置服务器 IP。是的,如果我将所有这些属性都放在bootstrap.yml文件中,它确实有效。我可以在不使用文件资源的情况下以某种方式使其工作吗?

0 投票
1 回答
2868 浏览

spring - Spring Boot 中的自定义自动配置无法使用 ConditionalOnBean 找到 DataSource

我对 Spring Boot 版本 2.0.1.RELEASE 有疑问(在 Spring Boot 2.0.0.RELEASE 中,以下配置运行良好)。

有人可以帮助我,为什么这个配置不起作用?我有这个配置,这个配置不符合ConditionalOnBean条件。

AutoConfigureOrder//Order似乎AutoConfigureAfter没有任何效果。

spring.factories我有:

此配置的应用程序启动输出:

...

在我看来,配置类是之前评估过DataSourceAutoConfiguration的,这就是找不到 bean 的原因。其他配置,如DataSourceHealthIndicatorAutoConfiguration找到 bean。

0 投票
0 回答
499 浏览

spring-boot - 从远程 GIT 存储库获取属性文件时 Spring 配置服务器抛出错误,但在本地 GIT 存储库中工作正常

我使用 spring cloud 创建了一个 Spring Config Server 以从远程 GIT 存储库中获取属性文件。但是当我点击http://localhost:8081/spring-config/eureka它在控制台上给出以下错误 - (我创建了一个名为 eureka.properties 的文件并放置在https://github.com/piyushbaghla/spring -配置

[2m2018-06-03 23:19:41.163[0;39m [31mERROR[0;39m [35m7648[0;39m [2m---[0;39m [2m[nio-8081-exec-9][0; 39m [36mo.accC[.[.[/].[dispatcherServlet] [0;39m [2m:[0;39m Servlet.service() for servlet [dispatcherServlet] 在路径 [] 的上下文中抛出异常 [请求处理失败;嵌套异常是 java.lang.IllegalStateException: Cannot load environment] 根本原因

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1 at java.lang.String.substring(String.java:1967) ~[na:1.8.0_144] at org.springframework.cloud.config.server.environment。 HttpClientConfigurableHttpConnectionFactory.lookupHttpClientBuilder(HttpClientConfigurableHttpConnectionFactory.java:69) ~[spring-cloud-config-server-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] at org.springframework.cloud.config.server.environment .HttpClientConfigurableHttpConnectionFactory.create(HttpClientConfigurableHttpConnectionFactory.java:56) ~[spring-cloud-config-server-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] at org.eclipse.jgit.transport.TransportHttp。 httpOpen(TransportHttp.java:830) ~[org.eclipse.jgit-4.11.0.201803080745-r.jar:4.11.0.201803080745-r] at org.eclipse.jgit.transport.TransportHttp.connect(TransportHttp.java:491)~[org.eclipse.jgit-4.11.0.201803080745-r.jar:4.11.0.201803080745-r] 在 org.eclipse.jgit.transport.TransportHttp.openFetch(TransportHttp.java:345)~[org.eclipse.jgit -4.11.0.201803080745-r.jar:4.11.0.201803080745-r] 在 org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:137) ~[org.eclipse.jgit-4.11.0.201803080745-r.jar: 4.11.0.201803080745-r] 在 org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:123) ~[org.eclipse.jgit-4.11.0.201803080745-r.jar:4.11.0.201803080745-r] 在 org. eclipse.jgit.transport.Transport.fetch(Transport.java:1269) ~[org.eclipse.jgit-4.11.0.201803080745-r.jar:4.11.0.201803080745-r] at org.eclipse.jgit.api.FetchCommand.call (FetchCommand.java:241) ~[org.eclipse.jgit-4.11.0.201803080745-r.jar:4.11.0.201803080745-r] at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:306) ~[org.eclipse.jgit-4.11.0.201803080745-r.jar:4.11.0.201803080745-r] 在 org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:200) ~[org.eclipse.jgit -4.11.0.201803080745-r.jar:4.11.0.201803080745-r] 在 org.springframework.cloud.config.server.environment.JGitEnvironmentRepository.cloneToBasedir(JGitEnvironmentRepository.java:560) ~[spring-cloud-config-server-2.0. 0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 在 org.springframework.cloud.config.server.environment.JGitEnvironmentRepository.copyRepository(JGitEnvironmentRepository.java:535) ~[spring-cloud-config-server-2.0 .0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 在 org.springframework.cloud.config.server.environment.JGitEnvironmentRepository.createGitClient(JGitEnvironmentRepository.java:518) ~[spring-cloud-config-server- 2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 在 org.springframework.cloud.config.server.environment.JGitEnvironmentRepository.refresh(JGitEnvironmentRepository.java:259) ~[spring-cloud-config-server-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] at org .springframework.cloud.config.server.environment.JGitEnvironmentRepository.getLocations(JGitEnvironmentRepository.java:238) ~[spring-cloud-config-server-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 在org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository.getLocations(MultipleJGitEnvironmentRepository.java:150) ~[spring-cloud-config-server-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT]在 org.springframework.cloud.config.server.environment.AbstractScmEnvironmentRepository.findOne(AbstractScmEnvironmentRepository.java:47) ~[spring-cloud-config-server-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT ] 在组织。springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository.findOne(MultipleJGitEnvironmentRepository.java:190) ~[spring-cloud-config-server-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] at org .springframework.cloud.config.server.environment.CompositeEnvironmentRepository.findOne(CompositeEnvironmentRepository.java:46) ~[spring-cloud-config-server-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 在org.springframework.cloud.config.server.environment.EnvironmentEncryptorEnvironmentRepository.findOne(EnvironmentEncryptorEnvironmentRepository.java:53) ~[spring-cloud-config-server-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT]在 org.springframework.cloud.config.server.environment.EnvironmentController.labelled(EnvironmentController.java:122) ~[spring-cloud-config-server-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 在 org.springframework.cloud.config.server.environment.EnvironmentController.defaultLabel(EnvironmentController.java:106) ~[spring-cloud-config-server-2.0.0.BUILD-SNAPSHOT.jar:2.0.0 .BUILD-SNAPSHOT] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_144] 在 sun .reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144] at org.springframework .web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod。 invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring -webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877) ~[spring-webmvc-5.0. 6.RELEASE.jar:5.0.6.RELEASE] 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783) ~[spring-webmvc-5.0.6.RELEASE.jar :5.0.6.RELEASE] 在 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]在 org.springframework.web.servlet。DispatcherServlet.doDispatch(DispatcherServlet.java:991) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) ~ [spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) ~[spring-webmvc-5.0.6.RELEASE. jar:5.0.6.RELEASE] 在 org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] 在 javax。 servlet.http.HttpServlet.service(HttpServlet.java:635) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851 ) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:742)〜[tomcat-embed-core-8.5.31.jar:8.5.31]在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)〜[tomcat-embed-core-8.5.31 .jar:8.5.31] 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] 在 org.apache.tomcat .websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31 .jar:8.5.31] 在 org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:158) ~[spring-boot-actuator-2.1.0.BUILD-SNAPSHOT.jar:2.1.0.BUILD-SNAPSHOT] 在 org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java :126) ~[spring-boot-actuator-2.1.0.BUILD-SNAPSHOT.jar:2.1.0.BUILD-SNAPSHOT] 在 org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter. java:111) ~[spring-boot-actuator-2.1.0.BUILD-SNAPSHOT.jar:2.1.0.BUILD-SNAPSHOT] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~ [spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31. jar:8.5.31] 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] 在 org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:84) ~[spring-boot -actuator-2.1.0.BUILD-SNAPSHOT.jar:2.1.0.BUILD-SNAPSHOT] 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6. RELEASE.jar:5.0.6.RELEASE] 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] 在 org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java :99) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] 在 org.springframework.web.filter。OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.31.jar:8.5.31] 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar: 8.5.31] 在 org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] 在 org.springframework.web。 filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193 ) ~[tomcat-embed-core-8.5.31.jar:8.5.31] 在 org.apache。catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81 ) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6. RELEASE.jar:5.0.6.RELEASE] 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] 在 org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java :200)〜[spring-web-5.0.6.RELEASE.jar:5.0.6。RELEASE] 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] 在 org.apache.catalina.core。 ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat -embed-core-8.5.31.jar:8.5.31] 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.31.jar:8.5。 31] 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.31.jar:8.5.31] 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:496) [tomcat-embed-core-8.5.31.jar:8.5.31] 在 org.apache.catalina.core。StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed -core-8.5.31.jar:8.5.31] 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.31.jar:8.5.31] 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.31.jar:8.5.31] 在 org.apache.coyote.http11.Http11Processor.service(Http11Processor. java:803) [tomcat-embed-core-8.5.31.jar:8.5.31] 在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.31.jar :8.5.31] 在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) [tomcat-embed-core-8.5.31.jar:8.5.31] 在 org.apache。tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.tomcat.util.net.SocketProcessorBase.run( SocketProcessorBase.java:49) [tomcat-embed-core-8.5.31.jar:8.5.31] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_144] 在 java. util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_144] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed -core-8.5.31.jar:8.5.31] 在 java.lang.Thread.run(Thread.java:748) [na:1.8.0_144]31] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_144] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8. 0_144] 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.31.jar:8.5.31] 在 java.lang.Thread.run (Thread.java:748) [na:1.8.0_144]31] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_144] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8. 0_144] 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.31.jar:8.5.31] 在 java.lang.Thread.run (Thread.java:748) [na:1.8.0_144]

谁能建议这里有什么问题。当我连接到我机器上的本地 GIT 存储库时,它工作正常。

0 投票
0 回答
156 浏览

spring - 带有 Spring 配置文件和基于注释的配置的 WebApplicationInitializer

当我们最近将第二个 Spring 应用程序部署到同一个 Tomcat 时,我们遇到了意外交互的问题。

正如经常发生的那样,这打开了一大堆关于我如何创建春天背景的蠕虫。这不是 Spring Boot 应用程序。

Spring中不乏使用Servlet 3.0初始化的例子。但是我找不到一个使用 Spring 配置文件和基于 @Configuration 注释的上下文初始化的一个。

在经历了很多痛苦之后,我决定这样做:

唯一的问题是根上下文@configuration 文件被“处理”了两次。扫描一次,但实例化 ContextLoaderListener 时再一次。我使用引号是因为第一次进行一些初始化但上下文没有处于可用状态。

我玩过 context.refresh() 但这让事情变得更糟。

所有这些都会导致一些奇怪的问题,尤其是根上下文中的 EHCache。总的来说,我可以忽略它。但似乎应该有一种方法可以让 Spring 准确地扫描每个上下文一次——并且仍然支持 Profiles。但我没有想法。

0 投票
2 回答
1673 浏览

spring - 刷新 Spring Boot 自动配置的属性

我可以动态刷新 Spring Boot 的自动配置设置使用的属性吗?

例如,我设置了以下属性(通过云配置)来自动配置dataSource

现在,如果我更改配置服务器上的密码道具并点击/refresh端点,我可以看到更新的道具已检索但未DataSource刷新。

我知道我可以手动配置DataSourcebean 并确保它们属于 a RefreshScope,但我希望找到一种方法将自动配置的属性标记为“可刷新”。我有一些用例,我想刷新 Spring Boot 用于其他 bean 的道具DataSources,手动设置其中一些 bean 可能会很痛苦。

0 投票
2 回答
2564 浏览

java - 在 Java 中从逗号分隔的字符串创建枚举列表

我需要从逗号分隔的字符串创建枚举列表。我在属性文件中有一些配置,主要是HttpStatus

像:

此配置可以绑定到 LIST,如下所示:

现在可以用我的一行代码来完成。我收到的字符串如下:

Arrays.asList(series.split("\s*,\s*")); 将创建一个字符串列表,现在我可以创建一个枚举列表,否则我需要迭代临时列表然后创建一个枚举列表。

0 投票
2 回答
791 浏览

java - Spring mvc 控制器不起作用

我有一个简单的 Spring MVC 项目,正如我所见,控制器不起作用在运行页面http://localhost:8080/story/list后显示 HTTP 状态 404 - 但是当我运行 TestDbServlet 时一切正常(映射http://本地主机:8080/TestDbServlet

项目结构截图

web.xml 文件

applicationContext.xml 文件

StoryController.java @Controller 类

TestDbServlet