版权声明:版权声明:本文为博主原创文章,未经允许请勿转载,谢谢 https://blog.csdn.net/a972669015/article/details/87974628
结构:
配置文件大概长这样子:
#vpn
vpn.proxyHost = 127.0.0.1
vpn.proxyPort = 8787
vpn.scheme = http
#twitter
twitter.ConsumerKey = ****************************
twitter.ConsumerSecret = ****************************
twitter.Token = ****************************
twitter.TokenSecret = ****************************
#facebook
facebook.token = ****************************
facebook.search.url = https://graph.facebook.com/
#facebook.search.param = /posts?fields=id,message,picture,link,type,created_time&limit=30&access_token=
#youtube
youtube.videoUrl = https://www.youtube.com/watch?v=
youtube.search.feed = https://www.googleapis.com/youtube/v3/search?key=
youtube.search.videos = https://www.googleapis.com/youtube/v3/videos?key=
youtube.search.statistics = &part=statistics&id=
#youtube.search.user = &part=snippet,id&maxResults=50&order=date&channelId=
youtube.token = ****************************
#sina
sina.token = ****************************
client_ID = ****************************
client_SERCRET = ****************************
redirect_URI = https://api.weibo.com/oauth2/default.html
baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
rmURL=https://rm.api.weibo.com/2/
#neo4j
neo.uri = bolt://localhost:7687
neo.username = neo4j
neo.password = admin
neo.databasePath = D:\\neo4j-community-3.5.0-windows\\neo4j-community-3.5.0\\data\\databases\\graph.db
实体类长这样子:
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.Configuration;
/**
* 配置文件实体类
* @Title: ConfigEntity.java
* @author:Zhang
* @date: 2018年11月22日 下午4:47:40
*/
public class SnsConfig {
private Configuration config;
private static SnsConfig instance;
//VPN
private static final String PROXYHOST = "vpn.proxyHost";
private static final String PROXYPORT = "vpn.proxyPort";
private static final String SCHEME = "vpn.scheme";
//Twitter
private static final String TWITTER_CONSUMER_KEY = "twitter.ConsumerKey";
private static final String TWITTER_CONSUMER_SECRET = "twitter.ConsumerSecret";
private static final String TWITTER_TOKEN = "twitter.Token";
private static final String TWITTER_TOKEN_SECRET = "twitter.TokenSecret";
//FaceBook
private static final String FACEBOOK_TOKEN = "facebook.token";
private static final String FACEBOOK_URL = "facebook.search.url";
private static final String FACEBOOK_PARAM = "facebook.search.param";
//YouTube
private static final String VEDIOURL ="youtube.videoUrl";
private static final String YOUTUBE_SEARCH_FEED = "youtube.search.feed";
private static final String YOUTUBE_SEARCH_USER = "youtube.search.user";
private static final String YOUTUBE_TOKEN = "youtube.token";
private static final String YOUTUBE_SEARCH_VIDEOS = "youtube.search.videos";
private static final String YOUTUBE_SEARCH_STATISTICS = "youtube.search.statistics";
//SinaWB
private static final String SINA_TOKEN = "sina.token";
//neo4j
private static final String NEO_URI = "neo.uri";
private static final String NEO_USERNAME = "neo.username";
private static final String NEO_PASSWORD = "neo.password";
private static final String NEO_DATABASEPATH = "neo.databasePath";
SnsConfig() {
super();
try {
//此处修改配置文件名称
config = new PropertiesConfiguration("config.properties");
} catch (ConfigurationException e) {
e.getMessage();
}
}
public static SnsConfig getInstance() {
if (instance == null) {
synchronized (SnsConfig.class) {
if (instance == null)
instance = new SnsConfig();
}
}
return instance;
}
/**
* @return the neoDatabasepath
*/
public String getNeoDatabasepath() {
return config.getString(NEO_DATABASEPATH);
}
/**
* @return the neoUri
*/
public String getNeoUri() {
return config.getString(NEO_URI);
}
/**
* @return the neoUsername
*/
public String getNeoUsername() {
return config.getString(NEO_USERNAME);
}
/**
* @return the neoPassword
*/
public String getNeoPassword() {
return config.getString(NEO_PASSWORD);
}
/**
* @return the sinaToken
*/
public String getSinaToken() {
return config.getString(SINA_TOKEN);
}
/**
* @return the youtubeSearchVideos
*/
public String getYoutubeSearchVideos() {
return config.getString(YOUTUBE_SEARCH_VIDEOS);
}
/**
* @return the youtubeSearchStatistics
*/
public String getYoutubeSearchStatistics() {
return config.getString(YOUTUBE_SEARCH_STATISTICS);
}
/**
* @return the proxyHost
*/
public String getProxyhost() {
return config.getString(PROXYHOST);
}
/**
* @return the proxyPort
*/
public String getProxyPort() {
return config.getString(PROXYPORT);
}
/**
* @return the scheme
*/
public String getScheme() {
return config.getString(SCHEME);
}
/**
* @return the twitterConsumerKey
*/
public String getTwitterConsumerKey() {
return config.getString(TWITTER_CONSUMER_KEY);
}
/**
* @return the twitterConsumerSecret
*/
public String getTwitterConsumerSecret() {
return config.getString(TWITTER_CONSUMER_SECRET);
}
/**
* @return the twitterToken
*/
public String getTwitterToken() {
return config.getString(TWITTER_TOKEN);
}
/**
* @return the twitterTokenSecret
*/
public String getTwitterTokenSecret() {
return config.getString(TWITTER_TOKEN_SECRET);
}
/**
* @return the facebookToken
*/
public String getFacebookToken() {
return config.getString(FACEBOOK_TOKEN);
}
/**
* @return the facebookUrl
*/
public String getFacebookUrl() {
return config.getString(FACEBOOK_URL);
}
/**
* @return the facebookParam
*/
public String getFacebookParam() {
return config.getString(FACEBOOK_PARAM);
}
/**
* @return the vediourl
*/
public String getVediourl() {
return config.getString(VEDIOURL);
}
/**
* @return the youtubeSearchFeed
*/
public String getYoutubeSearchFeed() {
return config.getString(YOUTUBE_SEARCH_FEED);
}
/**
* @return the youtubeSearchUser
*/
public String getYoutubeSearchUser() {
return config.getString(YOUTUBE_SEARCH_USER);
}
/**
* @return the youtubeToken
*/
public String getYoutubeToken() {
return config.getString(YOUTUBE_TOKEN);
}
}
使用(部分代码):
/**
* @Title: VpnUtil.java
* @author:Zhang
* @date: 2018年11月16日 下午5:37:36
*/
@Component
public class VpnUtil {
private static final String PROXYHOST = SnsConfig.getInstance().getProxyhost();
private static final String PROXYPORT = SnsConfig.getInstance().getProxyPort();
public static void setVpn() {
//开启代理
System.setProperty("proxySet", "true");
//设置Http代理
System.setProperty("http.proxyHost", PROXYHOST);
System.setProperty("http.proxyPort", PROXYPORT);
}
}
/**
* 解析twitter数据
* @Title: TwitterVipuserParser.java
* @author:Zhang
* @date: 2018年11月6日 下午3:31:22
*/
@Component("twitterVipuserParser")
public class TwitterVipuserParser {
private static final Logger log = LoggerFactory.getLogger(TwitterVipuserParser.class);
private static final String CONSUMER_KEY = SnsConfig.getInstance().getTwitterConsumerKey();
private static final String CONSUMER_SECRET = SnsConfig.getInstance().getTwitterConsumerSecret();
private static final String TOKEN = SnsConfig.getInstance().getTwitterToken();
private static final String TOKEN_SECRET = SnsConfig.getInstance().getTwitterTokenSecret();
因为配置文件中的账号会过期,所以需要经常做修改,个人觉得这样会方便一些,不用改代码了。
如果需要新增一条配置数据,只要在配置实体类加个字段就好了。
------------------------------------------------------------------------------------------------------------------------------------------------
jar包:
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
</dependency>