I am trying to implement Spring Cloud Netflix zuul proxy in my application. In internet, i am getting all option where it's implemented using spring boot. To enable zuul proxy, in spring boot, it's done -
#EnableZuulProxy
#SpringBootApplication
public class SpringCloudZuulExampleApplication {
But my application is spring mvc application and i have xml based configuration. Now I am not understanding how to do #EnableZuulProxy in my application-context.xml file.
Zuul proxy is used to route the traffic. More details about it can be found at - https://exampledriven.wordpress.com/2016/07/06/spring-cloud-zuul-example/
Thanks for the help.
Spring Cloud Netflix is fully dependent on Spring boot. So it can't be used without Spring Boot.
You can consider migrating your Spring MVC application to Spring Boot application. Or you may consider using Netflix Zuul that is not dependent on Spring Boot.
Related
I just started learning spring cloud security and I have a basic question. How it is different from spring security? Do we need our application to be built on spring boot for using spring cloud security?
Thanks in advance.
Spring Security is a stand alone framework within Spring Framework. Spring Cloud Security is a Cloud Container and MicroServices focused Security Framework that provides Tokenised Security for Spring Boot applications.
I would like to ask how to refresh spring boot configuration info with using spring cloud config. Would you please give me some advice? Many thanks.
If your spring boot application is a client of Spring Cloud Configuration Server and use itself as single point of truth in the application configuration let's say retrieve application.properties/yml from the config server, you can benefit of #RefreshScope. in this case if you do a post to the /refresh if you use spring boot 1.x or /actuator/refresh if you use spring boot 2.x all the bean that are have are annotated as #RefreshScope will be refreshed.
I got below instruction from spring boot doc:
Adding both spring-boot-starter-web and spring-boot-starter-webflux modules in your application results in Spring Boot auto-configuring Spring MVC, not WebFlux. This behavior has been chosen because many Spring developers add spring-boot-starter-webflux to their Spring MVC application to use the reactive WebClient. You can still enforce your choice by setting the chosen application type to SpringApplication.setWebApplicationType(WebApplicationType.REACTIVE)
My question is:
What if my application contains both MVC services and webflux services?
Is it supported?
For example:
I may have some existing admin service which is MVC based. Now I want to add some new services with webflux style.
No, this is not supported. Spring MVC and Spring WebFlux have different runtime models and don't support the same servers (for example, Spring WebFlux can be run with Netty, Spring MVC cannot).
Also, Spring MVC and Spring WebFlux are full web frameworks, meaning each has its own infrastructure that somehow duplicates the other. Deploying both in the same app would make it difficult to map requests (which requests should go where?).
I would like to add Spring Boot actuator metrics to my existing Spring MVC 5 application (I cannot convert to Spring Boot).
There are a couple of answered questions on SO (Spring Boot Actuator without Spring Boot) but they are for using Spring Boot Actuator 1.x.
Spring Boot Actuator 2.x has been re-architected and so these instructions are no longer valid.
Has anyone integrated Spring Boot Actuator 2.x with a standard Spring MVC 5 app?
Unfortunately you cannot include Spring Boot Actuator without requiring Spring Boot. Spring Boot is a Maven dependency of the Spring Boot Actuator project (the name also suggests that spring boot is required).
You can check out the actual dependency of spring-boot in the pom of spring-boot-actuator.
I'm just curious, is it possible to consume Spring Cloud config by a Spring REST service which is not a Spring boot application. If it is possible, where to define the properties in a Spring REST service. I meant, where should I define
spring.cloud.config.uri etc.
Or, only Spring boot applications are allowed to consume Cloud configuration?
Any thought would be appreciated. Thanks
well spring boot just bootstrap all configuration automatically . so for simple spring application you have to config it manually and define the cloud config server beans in your application configuration file . it could be pure old fashion xml files or just using java code configuration with #Configuration. you could find some samples in github