将zookeeper curator与springboot项目进行整合(重点)

第一步:用java类进行配置

package com.lpy;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
//需要springboot去扫描,   springboot是通过java类来进行配置的
@Component
public class ZookeeperCuratorClient {
	//zookeeper客户端
	private CuratorFramework client =null;
	//日志(中间件的工具类都需要添加日志)
	final static Logger log=LoggerFactory.getLogger(ZookeeperCuratorClient.class);
	
	public static final String ZOOKEEPER_SERVER="192.168.4.245:2181";
	
	public void init() {
		if(client!=null) {
			return;
		}
		//第一步:创建重试策略
		RetryPolicy retryPolicy=new ExponentialBackoffRetry(1000,5);
		//第二步:创建zookeeper客户端
		client=CuratorFrameworkFactory.builder().connectString(ZOOKEEPER_SERVER)
												.sessionTimeoutMs(10000)
												.retryPolicy(retryPolicy)
												.namespace("admin").build();
		//第三步:启动客户端
		client.start();
		
		//测试
		try {
			String testNodeData = new String(client.getData().forPath("/bgm/..."));
			log.info("测试的节点数据为:{}",testNodeData);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}

}

第二步:在webconfig进行配置初始化

package com.lpy;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
 * 以前spring配置实在xml里面,现在springboot配置实在java类里面
 * @author Richard
 *
 */

import com.lpy.controller.interceptor.MiniInterceptor;
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
	/**
	 * 显示图片的配置,我们的个人信息的头像
	 * @author Richard
	 * 可以直接通过http://localhost:8082/181127743X140568/face/wx3ce7c79e96132bd8.o6zAJs-h4oiS8tWZhwsiPN2jEeD8.3LCbAy49NFap02319d110a7896da0e48d2c34a1259d6.JPG
	 *访问图片
	 */
	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("/**")
				.addResourceLocations("classpath:/META-INF/resources/") //解决swagger2的访问,注意后面多了一个斜线
		        .addResourceLocations("file:D:\\java_all\\workspace-wxxcs\\video-space\\");
	}
	
	@Bean(initMethod="init")
	public ZookeeperCuratorClient zookeeperCuratorClient() {
		return new ZookeeperCuratorClient();
	}
	
	@Bean
	public MiniInterceptor miniInterceptor() {
		
		return new MiniInterceptor();
	}

	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		//将拦截器注册进去了
		registry.addInterceptor(miniInterceptor()).addPathPatterns("/user/**")
												  .addPathPatterns("/video/upload","/video/uploadCover",
														           "/video/userLike","/video/userUnLike")
												  .addPathPatterns("/bgm/**")
												  .excludePathPatterns("/user/queryPublisher");//这方法就不会被拦截了
		super.addInterceptors(registry);
	}
	
	
}

猜你喜欢

转载自blog.csdn.net/Richard_666/article/details/85123337