多线程Spring注入失败

    在对Spring进行测试(多线程环境)时发现ExpertBlogService一直注入失败,后来发现多线程环境下Spring是不会对新线程进行管理的,所以需要我们手动加载配置文件,另外将加载部分部分放进静态块中防止多次加载,代码如下:

    private static ApplicationContext ctx = null;

    private static ExpertBlogService expertBlogService;

    private static ExpertBlogMapper expertBlogMapper;

    //When you use @Autowired in a new thread,you will get a nullpointerException
    static {
        ctx = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");
        expertBlogMapper = (ExpertBlogMapper) ctx.getBean("expertBlogMapper");
        expertBlogService = new ExpertBlogServiceImpl(expertBlogMapper);
    }

猜你喜欢

转载自blog.csdn.net/bathe123/article/details/80317683
今日推荐