我正在尝试为使用@RefreshScope. 我想添加一个实际更改属性并断言应用程序正确响应的测试。我已经想出了如何触发刷新(自动装配RefreshScope和调用refresh(...)),但我还没有想出修改属性的方法。如果可能,我想直接写入属性源(而不是必须处理文件),但我不确定在哪里查看。
更新
这是我正在寻找的示例:
public class SomeClassWithAProperty {
@Value{"my.property"}
private String myProperty;
public String getMyProperty() { ... }
}
public class SomeOtherBean {
public SomeOtherBean(SomeClassWithAProperty classWithProp) { ... }
public String getGreeting() {
return "Hello " + classWithProp.getMyProperty() + "!";
}
}
@Configuration
public class ConfigClass {
@Bean
@RefreshScope
SomeClassWithAProperty someClassWithAProperty() { ...}
@Bean
SomeOtherBean someOtherBean() {
return new SomeOtherBean(someClassWithAProperty());
}
}
public class MyAppIT {
private static final DEFAULT_MY_PROP_VALUE = "World";
@Autowired
public …Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用 Spring Cloud 和 Eureka 创建微服务。
现在我有一个服务器可以接收 2 个微服务:ACCOUNTS-SERVICE 和 WEB-SERVICE
[nio-1111-exec-2] c.n.e.registry.AbstractInstanceRegistry : Registered instance ACCOUNTS-SERVICE/192.168.0.13:accounts-service:2222 with status UP (replication=false)
[nio-1111-exec-4] c.n.e.registry.AbstractInstanceRegistry : Registered instance WEB-SERVICE/192.168.0.13:web-service:3333 with status UP (replication=false)
Run Code Online (Sandbox Code Playgroud)
这是我的网络服务:
package eu.epitech.jug.services.web;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
/**
* Created by sadzeih on 12/9/16.
*/
@SpringBootApplication
@EnableDiscoveryClient
@ComponentScan(useDefaultFilters=false)
public class WebServer {
public static void main(String[] args) {
// Will configure using web-server.yml
System.setProperty("spring.config.name", "web-server");
SpringApplication.run(WebServer.class, args); …Run Code Online (Sandbox Code Playgroud) 例如,我有重定向到 x.jsp 的下游服务,此位置不在网关路由中
gateway route --- localhost:8080/app - 192.168.1.1:80 (DownStream app)
Run Code Online (Sandbox Code Playgroud)
在 DownStream 应用程序中,当用户未登录时,它重定向到 192.168.1.1:80/Login.jsp,它位于Location响应的标头中。
此 URL 未使用网关。
我想编写一个 zuul 过滤器,通过在 zuul 动态路由中映射来更改此重定向 url,例如,对于在 zuul 过滤器更改Location标头中由网关路由的每个 url 。我怎样才能做到这一点?
spring-security spring-cloud netflix-zuul spring-cloud-netflix
我的 Spring Cloud Config Client 依赖于spring.cloud.starter.bus.amqp,但它仍然没有启用/bus/refresh endpoint
build.gradle
compile("org.springframework.cloud:spring-cloud-starter-stream-rabbit:1.1.3.RELEASE")
compile("org.springframework.cloud:spring-cloud-starter-bus-amqp:1.2.2.RELEASE")
Run Code Online (Sandbox Code Playgroud)
我的配置客户端应用程序中有这些依赖项,但仍然没有启用/bus/refresh, /bus/env.
请让我知道我的客户端应用程序中缺少什么。
笔记:
spring.cloud.bus.refresh.enabled: true
spring.cloud.bus.env.enabled: true
endpoints.spring.cloud.bus.refresh.enabled: true
endpoints.spring.cloud.bus.env.enabled: true
Run Code Online (Sandbox Code Playgroud)
我已尝试在 , 中application.yml或application.properties在 , 使用时设置这些指标BusAutoConfiguration以启用/bus/*端点。
@ConditionalOnProperty(value = "endpoints.spring.cloud.bus.refresh.enabled", matchIfMissing = true)
Run Code Online (Sandbox Code Playgroud)
在我的 Spring Cloud Config Server 应用程序中,我禁用了这些端点,即设置为 false
endpoints.spring.cloud.bus.refresh.enabled: false
endpoints.spring.cloud.bus.env.enabled: false
Run Code Online (Sandbox Code Playgroud)
并观察到在 Spring Boot 启动期间/bus/*没有启用端点。
我跟着这个文档Archaius和其他一些网上的文章。但是,大概每个服务都应该有 Archaius 或配置相关的代码/依赖项(-jars)来加载配置值。我担心的是,如果加载配置需要更改,则必须重新加载/重新部署每个服务。
一季度。任何人都可以让我知道如何保持集中的 Archaius 配置服务,以便客户端服务提取配置。
相反,Spring Cloud Config 服务器完成这项工作——所有配置都集中在一个地方。但我觉得它缺乏从自定义资源加载配置 - 例如,从 Archaius 提供的数据库加载数据。
Q2。有没有办法让 Config Server 从 Archaius 加载配置?
spring spring-cloud spring-cloud-netflix spring-cloud-config
如何列出所有 Spring Boot 数据源?包括使用 Spring Cloud Config 配置的和其他自动配置的基于 pom.xml 中 db 驱动程序的 Maven 依赖项
默认情况下,Spring Sleuth 只向 Zipkin 发送 10% 的请求。通过设置,spring.sleuth.sampler.percentage您可以增加百分比。不幸的是,无论我将其设置为什么值,它都停留在 10%。我试过 1.0、0.5、1、100。
输出来自 /env
"spring.sleuth.sampler.percentage": {
"value": 1,
"origin": "class path resource [application.yml]:77:19"
}
Run Code Online (Sandbox Code Playgroud)
不管价值如何,当我提出多个请求时,只有 10% 的请求到达 Zipkin。
我们使用的是 Spring Cloud 的 Finchley.M8 版本和 Spring Boot 的 2.0.0.RELEASE 版本。
下面是相关的 POM 设置。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.M8</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这可能是一个错误吗?
我正在尝试使用动态伪装。但是从 RequestMapping 转换响应时我有很多问题。
控制器.java :
@RequestMapping("/users")
public ResponseEntity<List<User>> sendUsers
Run Code Online (Sandbox Code Playgroud)
MyFeignClient.java :
public interface MyFeignClient {
@RequestLine(value="GET /api/users")
ResponseEntity<List<User>> getUsers();}
Run Code Online (Sandbox Code Playgroud)
主类.java :
MyFeignClient callService = Feign.builder()
.encoder(new Encoder.Default())
.decoder(new Decoder.Default())
.requestInterceptor(new FeignConfig(props).getJwtRequestInterceptor())
.target(MyFeignClient.class, "http://localhost:8710");
Run Code Online (Sandbox Code Playgroud)
进而 :
ResponseEntity<List<User>> txnPool = callService.getUsers();
Run Code Online (Sandbox Code Playgroud)
但我有以下错误:
feign.codec.DecodeException User 不是此解码器支持的类型
我该如何解决?
我有一个 REST API 端点,它使用多个 Feign 客户端来执行验证和处理。有问题的端点接受 POST 请求,但用于验证的 Feign 客户端接受 GET 请求。当我向 API 端点发出 POST 请求时,我从需要 GET 的 Feign 客户端收到以下错误。我的 Feign 客户端方法用 注释@GetMapping,但似乎请求仍在作为 POST 发送。如何在 POST 请求中向 Feign 客户端发出 GET 请求?
feign.FeignException: status 405 reading ValidationClient#checkData(String); content:
{"timestamp":"2018-08-06T14:43:45.998+0000","status":405,"error":"Method Not Allowed","message":"Request method 'POST' not supported","path":"/"}
at feign.FeignException.errorStatus(FeignException.java:62) ~[feign-core-9.5.1.jar:na]
at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:91) ~[feign-core-9.5.1.jar:na]
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:138) ~[feign-core-9.5.1.jar:na]
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76) ~[feign-core-9.5.1.jar:na]
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103) ~[feign-core-9.5.1.jar:na]
at com.sun.proxy.$Proxy129.checkFormat(Unknown Source) ~[na:na]
at com.example.datainput.DataInputController.acceptData(DataInputController.java:20) ~[classes/:na]
at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:45005) ~[na:1.8.0_172]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_172]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) …Run Code Online (Sandbox Code Playgroud) 假设,我能够通过 Kafka 或 RabbitMQ 发送消息并使用 @StreamListener 使用它们。
绑定器配置为 content-type = 'application/json',所以我想可以在有效负载上添加条件。
我的要求是仅当字段的日期在 now() 之前时才获取元素。当此条件为真时,将消耗所有其他元素。
例如,我希望像这样:
@StreamListener(value = INPUT, condition = "data.startDate > now()")
public void onMessage(@Payload Data data) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
第一个问题是我收到错误:EL1008E:在“byte[]”类型的对象上找不到属性或字段“startDate”——可能不是公共的或无效的?
spring-cloud ×10
spring ×5
spring-boot ×3
java ×2
jhipster ×1
netflix-zuul ×1
spring-data ×1
zipkin ×1