springmvc 单例怎么注入service层

2024-12-02 15:54:19
推荐回答(3个)
回答1:

有的方法是不需要线程安全的,所以就不需要做线程安全处理
有的方法需要线程安全,比如售票,多个线程都在售票,售出一张就需要在总数中减掉一张,这个时候就需要线程安全,这个时候就可以把操作售票的方法用线程锁,或者隐式方式加线程关键字修饰,这个时候这个方法只能一个线程调用,其他的线程,只能等待使用的线程释放锁后,才能调用这个方法。
这样就保证了线程安全。

回答2:

你的单例类加@Component注解;然后可以直接在Service层用@Resource注入。

其实如果你的这个单例是全局的话,可以直接在项目启动时添加到ServletContext 或者 Spring的Application里。

比如 ,配置启动监听 


     xxx.xxx.web.listener.StartListener

然后在StartListener类里可以如下设置

public class StartListenerimplements ServletContextListener {
    private  static ApplicationContext applicationContext = null;
    public void contextInitialized(ServletContextEvent sce) {
        //System.out.println("ServletContext对象创建");
    //初始化 ApplicationContext  对象
    applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(sce.getServletContext());
    //设置点击量
    sce.getServletContext().setAttribute("单例名称",单例实体);
    }

回答3:

加注解引入咯