一 .首先打开http://start.spring.io/
一看就知道怎么搞了吧,不用多少了 首先建一个Springboot的Demo工程
首先建立一个BookApplication 代码如下很简单
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class BookApplication {
@RequestMapping(value = "/available")
public String available() {
return "Spring in Action";
}
@RequestMapping(value = "/checked-out")
public String checkedOut() {
return "Spring Boot in Action";
}
public static void main(String[] args) {
SpringApplication.run(BookApplication.class, args);
}
}
然后在application.properties配置文件配置端口号
spring.application.name=book
server.port=8090
完成
二 在建立一个Demo2项目,SimpleFilter可以加也可以不加,
package com.example;
import com.example.filter.SimpleFilter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.context.annotation.Bean;
@EnableZuulProxy
@SpringBootApplication
public class Demo2Application {
@Bean
public SimpleFilter simpleFilter() {
return new SimpleFilter();
}
public static void main(String[] args) {
SpringApplication.run(Demo2Application.class, args);
}
}
Filter代码如下
package com.example.filter;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
public class SimpleFilter extends ZuulFilter {
private static Logger log = LoggerFactory.getLogger(SimpleFilter.class);
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
log.info(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString()));
return null;
}
}
最后配置下application.properties
测试访问
http://localhost:8080/books/available
日志
2016-04-15 20:17:36.095 INFO 5033 --- [nio-8080-exec-1] o.s.c.n.zuul.web.ZuulHandlerMapping : Mapped URL path [/books/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
2016-04-15 20:17:58.587 INFO 5033 --- [nio-8080-exec-4] com.example.filter.SimpleFilter : GET request to http://localhost:8080/books/available
由结果可以看已经帮你重定向到了8090
代码地址
github: https://github.com/smartxing/zuul-demo
http://my.oschina.net/xliangbo/blog/660887