开发者社区> 问答> 正文

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

小弟最近一直在使用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都特么是单例的,这样是不是要考虑同步的问题呢??

展开
收起
a123456678 2016-03-16 17:19:58 3535 0
1 条回答
写回答
取消 提交回答
  • 因为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);
             
        }
         
    }
    2019-07-17 19:04:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud 微服务核心组件集 mica 的设计思路 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-Spring Cloud Alibaba 微服务全家桶体验 立即下载
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载