您的位置:首页 > 编程语言 > Java开发

比较使用的web项目中用到参数的地方的java实现.

2013-04-22 17:10 453 查看
/**
* Copyright 2013 asto.
* All right reserved.
* Created on 2013-2-10
*/
package com.zz91.util.seo;

import java.io.IOException;
import java.io.InputStream;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.apache.log4j.Logger;
import com.zz91.util.lang.StringUtils;

/**
* @author leiteng (lvjavapro@163.com)
*
*         created on 2013-2-10
*/
public class SeoUtil {

private static Logger LOG = Logger.getLogger(SeoUtil.class);

public final static String DEFAULT_PROP = "seo.properties";

public final static Map<String, String> TEMPLATE = new HashMap<String, String>();

public static SeoUtil _instance = null;
//采用单例模式实现的.
public static synchronized SeoUtil getInstance() {
if (_instance == null) {
_instance = new SeoUtil();
}
return _instance;
}

public void init() {
init(DEFAULT_PROP);
}

public void init(String prop) {
LOG.debug("Initializing seo...");
InputStream is = this.getClass().getClassLoader().getResourceAsStream(
prop);
Properties p = new Properties();
try {
p.load(is);
} catch (IOException e) {
LOG.error("An error occurred when load search properties:" + prop,
e);
}

String tmp = null;
for (Object key : p.keySet()) {
tmp = String.valueOf(key);
if (tmp != null) {
TEMPLATE.put(String.valueOf(key), String.valueOf(p.get(key)));
}
}

LOG.debug("Initializing params end...");
}

public void buildSeo(String page, String[] title, String[] keywords,
String[] desc, Map<String, Object> out) {

String titleTmp = TEMPLATE.get(page + ".title");
if (StringUtils.isEmpty(titleTmp)) {
titleTmp = TEMPLATE.get("title");
}
if (title != null) {
MessageFormat titleFormat = new MessageFormat(titleTmp);
out.put("seoTitle", titleFormat.format(title));
} else {
out.put("seoTitle", titleTmp);
}

String keywordsTmp = TEMPLATE.get(page + ".keywords");
if (StringUtils.isEmpty(keywordsTmp)) {
keywordsTmp = TEMPLATE.get("keywords");
}
if (keywords != null) {
MessageFormat keywordsFormat = new MessageFormat(keywordsTmp);
out.put("seoKeywords", keywordsFormat.format(keywords));
} else {
out.put("seoKeywords", keywordsTmp);
}

String descTmp = TEMPLATE.get(page + ".description");
if (StringUtils.isEmpty(descTmp)) {
descTmp = TEMPLATE.get("description");
}
if (desc != null) {
MessageFormat descriptionFormat = new MessageFormat(descTmp);
out.put("seoDescription", descriptionFormat.format(desc));
} else {
out.put("seoDescription", descTmp);
}
}

public void buildSeo(Map<String, Object> out) {
buildSeo(null, null, null, null, out);
}

public void buildSeo(String page, Map<String, Object> out) {
buildSeo(page, null, null, null, out);
}

}


下面是配置文件

seo.properties


title=供求相册-产品相册-废金属-废塑料-废纸-废纺织-再生资源-ZZ91再生网
keywords=导购相册,再生资源相册,废料产品相册,废塑料相册,废金属相册,再生回收,公司相册,废料供求图集,废料设备图集
description=ZZ91供求相册频道,ZZ91再生网旗下的一个展示供求相册的精美导购平台,以“相册”为核心,崇尚品质。

index.title=供求相册-产品相册-废金属-废塑料-废纸-废纺织-再生资源-ZZ91再生网
index.keywords=导购相册,再生资源相册,废料产品相册,废塑料相册,废金属相册,再生回收,公司相册,废料供求图集,废料设备图集
index.description=ZZ91供求相册频道,ZZ91再生网旗下的一个展示供求相册的精美导购平台,以“相册”为核心,崇尚品质。

search.title={0}-产品相册-再生资源-ZZ91再生网
search.keywords={0},{0}相册,废料产品相册,再生回收,废料供求图集
search.description=ZZ91供求相册频道,ZZ91再生网旗下的一个展示供求相册的精美导购平台,以“相册”为核心,崇尚品质。

empty.title={0}-产品相册暂无该类型数据-再生资源-ZZ91再生网
empty.keywords={0},{0}相册,废料产品相册,再生回收,废料供求图集
empty.description=ZZ91供求相册频道,ZZ91再生网旗下的一个展示供求相册的精美导购平台,以“相册”为核心,崇尚品质。

detail.title={0}-产品相册-再生资源-ZZ91再生网
detail.keywords={0},{0}相册,废料产品相册,再生回收,废料供求图集
detail.description=ZZ91供求相册频道,ZZ91再生网旗下的一个展示供求相册的精美导购平台,以“相册”为核心,崇尚品质。


在需要用到该逻辑的地方如此调用.,

SeoUtil.getInstance().buildSeo("search", new String[]{searchKey}, new String[]{searchKey}, null, out);

重要的一点是要在web文件中配置该java程序进行初始化,配置的代码为

在spring-front.xml文件中加入以下一行代码

<bean id="initSystem" class="com.ast.ast1949.photos.servlet.InitSystem" init-method="initSystem" destroy-method="destroySystem" lazy-init="false"></bean>


还要建立对应的initSystem.java文件

/**
* Copyright 2010 ASTO.
* All right reserved.
* Created on 2010-2-7
*/
package com.ast.ast1949.photos.servlet;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import javax.annotation.Resource;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;

import com.ast.ast1949.service.auth.ParamService;
import com.ast.ast1949.service.facade.CategoryFacade;
import com.ast.ast1949.service.facade.CategoryProductsFacade;
import com.ast.ast1949.service.facade.MemberRuleFacade;
import com.ast.ast1949.service.products.CategoryProductsService;
import com.ast.ast1949.service.site.CategoryService;
import com.ast.ast1949.service.site.MemberRuleService;
import com.zz91.util.cache.MemcachedUtils;
import com.zz91.util.param.ParamUtils;
import com.zz91.util.search.SearchEngineUtils;
import com.zz91.util.seo.SeoUtil;

/**
* @author Mays (x03570227@gmail.com)
*
*/

public class InitSystem {

private static Logger LOG = Logger.getLogger(InitSystem.class);
@Autowired
private ParamService paramService;
@Autowired
private CategoryService categoryService;
@Autowired
private CategoryProductsService categoryProductsService;
@Resource
private MemberRuleService memberRuleService;

final static String WEB_PROP="web.properties";

public void initSystem() {

MemcachedUtils.getInstance().init(WEB_PROP);
//初始化系统配置
initBaseConfig();

//初始化系统配置
//        initParamConfig();
ParamUtils.getInstance().init(paramService.queryUsefulParam(), "memcached");

//初始化系统类别库
CategoryFacade.getInstance().init(categoryService.queryCategoryList(),null);

//初始化类别code
CategoryProductsFacade.getInstance().init(categoryProductsService.queryAllCategoryProducts(), null);
//初始化规则
MemberRuleFacade.getInstance().init(memberRuleService.queryMemberRuleList(), null);

// 搜索引擎
SearchEngineUtils.getInstance().init(WEB_PROP);

// 这里就是初始化本程序的调用,
SeoUtil.getInstance().init();
}

public void destroySystem() {
MemcachedUtils.getInstance().getClient().shutdown();
}

public void initBaseConfig() {
LOG.info(">>>>>>>>Init system properties cache start...");
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("web.properties");
Properties p = new Properties();

try {
p.load(inputStream);
} catch (IOException e1) {
LOG.error("error read web.properties", e1);
}

String tmp = null;
for (Object key : p.keySet()) {
tmp = String.valueOf(key);
if (tmp != null && tmp.startsWith("baseConfig.")) {
MemcachedUtils.getInstance().getClient().set(String.valueOf(key), 0, String.valueOf(p.get(key)));
}
}

LOG.info(">>>>>>>>Init system properties cache end...");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐