关于spring mvc中的service单例的问题

tianpeng91 发布于 2013/11/24 17:44
阅读 4K+
收藏 4
小弟最近一直在使用SpringMVC做WEB开发,用的log是log4j,之前在每个service中加一个static final logger,如:
@Service("userService")
public class UserService extends BaseService implements IUserService {

	private static final Logger LOG = Logger.getLogger(UserService.class);
}

但是这样的话,每个service都要写,感觉烦,所以想在baseService中写:

protected Logger log = null;

public BaseService(){

    log = this.initLogger();

}

protected abstract Logger initLogger();

然后在所有子类中去实现这个initLogger方法,在里面实例化logger。

现在的问题是我测试了下springmvc的service都特么是单例的,这样是不是要考虑同步的问题呢??



加载中
0
Mike_Liu
Mike_Liu

你觉得可以不可以这样

因为service都是单例的嘛 所以static和非static都是一个对象哦~~

package common;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class BaseService {
	
	protected final Log log = LogFactory.getLog(getClass());
	
}



package common;

public class UserService extends BaseService {

	
	public void delete(long id){
		log.info(String.format("delete user[id=%d]", id));			
	}
	
	
	public static void main(String[] args) {
		
		UserService userService = new UserService();
		
		userService.delete(12);
		
	}
	
}



运行结果

tianpeng91
tianpeng91
嘿嘿。。。。是的,没想到,谢谢!
返回顶部
顶部