小弟最近一直在使用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都特么是单例的,这样是不是要考虑同步的问题呢??
因为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);
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。